@@ -279,8 +279,9 @@ macro_rules! make_ast_visitor {
279
279
make_visit!{ Local , visit_local, walk_local}
280
280
make_visit!{ P !( Pat ) , visit_pat, walk_pat}
281
281
make_visit!{ P !( Expr ) , visit_expr, walk_expr}
282
- make_visit!{ P !( Block ) , visit_block, walk_block}
283
282
make_visit!{ P !( Ty ) , visit_ty, walk_ty}
283
+ // TODO: Remove P! on implementers
284
+ make_visit!{ P !( Block ) , visit_block, walk_block}
284
285
285
286
// flat_maps
286
287
make_visit!{ Arm , visit_arm, walk_arm, flat_map_arm, walk_flat_map_arm}
@@ -942,6 +943,18 @@ macro_rules! make_ast_visitor {
942
943
return_result!( V )
943
944
}
944
945
946
+ pub fn walk_block<$( $lt, ) ? V : $trait$( <$lt>) ?>(
947
+ vis: & mut V ,
948
+ block: ref_t!( Block )
949
+ ) -> result!( V ) {
950
+ let Block { id, stmts, rules: _, span, tokens, could_be_bare_literal: _ } = block;
951
+ try_v!( visit_id!( vis, id) ) ;
952
+ visit_list!( vis, visit_stmt, flat_map_stmt, stmts) ;
953
+ visit_lazy_tts!( vis, tokens) ;
954
+ try_v!( visit_span!( vis, span) ) ;
955
+ return_result!( V )
956
+ }
957
+
945
958
make_walk_flat_map!{ Arm , walk_flat_map_arm, visit_arm}
946
959
make_walk_flat_map!{ Attribute , walk_flat_map_attribute, visit_attribute}
947
960
make_walk_flat_map!{ ExprField , walk_flat_map_expr_field, visit_expr_field}
@@ -1500,12 +1513,6 @@ pub mod visit {
1500
1513
walk_variant_data ( visitor, struct_definition)
1501
1514
}
1502
1515
1503
- pub fn walk_block < ' a , V : Visitor < ' a > > ( visitor : & mut V , block : & ' a Block ) -> V :: Result {
1504
- let Block { stmts, id : _, rules : _, span : _, tokens : _, could_be_bare_literal : _ } = block;
1505
- walk_list ! ( visitor, visit_stmt, stmts) ;
1506
- V :: Result :: output ( )
1507
- }
1508
-
1509
1516
pub fn walk_stmt < ' a , V : Visitor < ' a > > ( visitor : & mut V , statement : & ' a Stmt ) -> V :: Result {
1510
1517
let Stmt { id : _, kind, span : _ } = statement;
1511
1518
match kind {
@@ -2267,15 +2274,6 @@ pub mod mut_visit {
2267
2274
}
2268
2275
}
2269
2276
2270
- pub fn walk_block < T : MutVisitor > ( vis : & mut T , block : & mut P < Block > ) {
2271
- let Block { id, stmts, rules : _, span, tokens, could_be_bare_literal : _ } =
2272
- block. deref_mut ( ) ;
2273
- vis. visit_id ( id) ;
2274
- stmts. flat_map_in_place ( |stmt| vis. flat_map_stmt ( stmt) ) ;
2275
- visit_lazy_tts ( vis, tokens) ;
2276
- vis. visit_span ( span) ;
2277
- }
2278
-
2279
2277
pub fn walk_item_kind (
2280
2278
kind : & mut impl WalkItemKind ,
2281
2279
span : Span ,
0 commit comments