{"ast_node_type":"function","tokens":[{"end":117,"kind":"keyword","start":0,"text":"pub"}]}
        pub fn $fn_name<V: MutVisitor>(vis: &mut V, mut value: $Ty$(,$extra_name: $ExtraTy)*) -> SmallVec<[$Ty; 1]> {
    ($($fn_name:ident($Ty:ty$(,$extra_name:ident: $ExtraTy:ty)*) => $visit_fn_name:ident;)+) => {$(
            vis.$visit_fn_name(&mut value$(,$extra_name)*);