macro_rules! setup_tracked_method_body {
(
salsa_tracked_attr: #[$salsa_tracked_attr:meta],
self: $self:ident,
self_ty: $self_ty:ty,
db_lt: $($db_lt:lifetime)?,
db: $db:ident,
db_ty: ($($db_ty:tt)*),
input_ids: [$($input_id:ident),*],
input_tys: [$($input_ty:ty),*],
output_ty: $output_ty:ty,
inner_fn_name: $inner_fn_name:ident,
inner_fn: $inner_fn:item,
// Annoyingly macro-rules hygiene does not extend to items defined in the macro.
// We have the procedural macro generate names for those items that are
// not used elsewhere in the user's code.
unused_names: [
$InnerTrait:ident,
]
) => { ... };
}