@@ -326,6 +326,7 @@ macro_rules! make_ast_visitor {
326
326
make_visit!{ Attribute ; visit_attribute, walk_attribute}
327
327
make_visit!{ ClosureBinder ; visit_closure_binder, walk_closure_binder}
328
328
make_visit!{ Crate ; visit_crate, walk_crate}
329
+ make_visit!{ FnDecl ; visit_fn_decl, walk_fn_decl}
329
330
make_visit!{ FnRetTy ; visit_fn_ret_ty, walk_fn_ret_ty}
330
331
make_visit!{ FormatArgs ; visit_format_args, walk_format_args}
331
332
make_visit!{ GenericArg ; visit_generic_arg, walk_generic_arg}
@@ -349,7 +350,6 @@ macro_rules! make_ast_visitor {
349
350
350
351
make_visit!{ P !( Block ) ; visit_block, walk_block}
351
352
make_visit!{ P !( Expr ) ; visit_expr, walk_expr}
352
- make_visit!{ P !( FnDecl ) ; visit_fn_decl, walk_fn_decl}
353
353
make_visit!{ P !( Local ) ; visit_local, walk_local}
354
354
make_visit!{ P !( Pat ) ; visit_pat, walk_pat}
355
355
make_visit!{ P !( Ty ) ; visit_ty, walk_ty}
@@ -394,6 +394,16 @@ macro_rules! make_ast_visitor {
394
394
return_result!( V )
395
395
}
396
396
397
+ pub fn walk_fn_decl<$( $lt, ) ? V : $trait$( <$lt>) ?>(
398
+ vis: & mut V ,
399
+ decl: ref_t!( FnDecl )
400
+ ) -> result!( V ) {
401
+ let FnDecl { inputs, output } = decl;
402
+ visit_list!( vis, visit_param, flat_map_param, inputs) ;
403
+ try_v!( vis. visit_fn_ret_ty( output) ) ;
404
+ return_result!( V )
405
+ }
406
+
397
407
pub fn walk_fn_ret_ty<$( $lt, ) ? V : $trait$( <$lt>) ?>(
398
408
vis: & mut V ,
399
409
ret_ty: ref_t!( FnRetTy )
@@ -1099,14 +1109,6 @@ pub mod visit {
1099
1109
V :: Result :: output ( )
1100
1110
}
1101
1111
1102
- pub fn walk_fn_decl < ' a , V : Visitor < ' a > > (
1103
- visitor : & mut V ,
1104
- FnDecl { inputs, output } : & ' a FnDecl ,
1105
- ) -> V :: Result {
1106
- walk_list ! ( visitor, visit_param, inputs) ;
1107
- visitor. visit_fn_ret_ty ( output)
1108
- }
1109
-
1110
1112
pub fn walk_fn < ' a , V : Visitor < ' a > > ( visitor : & mut V , kind : FnKind < ' a > ) -> V :: Result {
1111
1113
match kind {
1112
1114
FnKind :: Fn ( _ctxt, _ident, FnSig { header, decl, span : _ } , _vis, generics, body) => {
@@ -2088,12 +2090,6 @@ pub mod mut_visit {
2088
2090
}
2089
2091
}
2090
2092
2091
- fn walk_fn_decl < T : MutVisitor > ( vis : & mut T , decl : & mut P < FnDecl > ) {
2092
- let FnDecl { inputs, output } = decl. deref_mut ( ) ;
2093
- inputs. flat_map_in_place ( |param| vis. flat_map_param ( param) ) ;
2094
- vis. visit_fn_ret_ty ( output) ;
2095
- }
2096
-
2097
2093
fn walk_param_bound < T : MutVisitor > ( vis : & mut T , pb : & mut GenericBound ) {
2098
2094
match pb {
2099
2095
GenericBound :: Trait ( ty, _modifier) => vis. visit_poly_trait_ref ( ty) ,
0 commit comments