@@ -110,7 +110,6 @@ macro_rules! make_ast_visitor {
110
110
} ;
111
111
}
112
112
113
- #[ allow( unused) ]
114
113
macro_rules! visit_o {
115
114
( $opt: expr, $fn: expr) => {
116
115
if let Some ( elem) = $opt {
@@ -268,7 +267,6 @@ macro_rules! make_ast_visitor {
268
267
/// or `ControlFlow<T>`.
269
268
type Result : VisitorResult = ( ) ;
270
269
271
- make_visit!{ Arm ; visit_arm, walk_arm}
272
270
make_visit!{ AssocItem , ctxt: AssocCtxt ; visit_assoc_item, walk_assoc_item}
273
271
make_visit!{ FieldDef ; visit_field_def, walk_field_def}
274
272
make_visit!{ ForeignItem ; visit_foreign_item, walk_item}
@@ -306,6 +304,7 @@ macro_rules! make_ast_visitor {
306
304
307
305
make_visit!{ AngleBracketedArgs ; visit_angle_bracketed_parameter_data, walk_angle_bracketed_parameter_data}
308
306
make_visit!{ AnonConst ; visit_anon_const, walk_anon_const}
307
+ make_visit!{ Arm ; visit_arm, walk_arm}
309
308
make_visit!{ AssocItemConstraint ; visit_assoc_item_constraint, walk_assoc_item_constraint}
310
309
make_visit!{ Attribute ; visit_attribute, walk_attribute}
311
310
make_visit!{ CaptureBy ; visit_capture_by, walk_capture_by}
@@ -371,6 +370,20 @@ macro_rules! make_ast_visitor {
371
370
return_result!( V )
372
371
}
373
372
373
+ pub fn walk_arm<$( $lt, ) ? V : $trait$( <$lt>) ?>(
374
+ vis: & mut V ,
375
+ arm: ref_t!( Arm )
376
+ ) -> result!( V ) {
377
+ let Arm { attrs, pat, guard, body, span, id, is_placeholder: _ } = arm;
378
+ try_v!( visit_id!( vis, id) ) ;
379
+ visit_list!( vis, visit_attribute, attrs) ;
380
+ try_v!( vis. visit_pat( pat) ) ;
381
+ visit_o!( guard, |guard| vis. visit_expr( guard) ) ;
382
+ visit_o!( body, |body| vis. visit_expr( body) ) ;
383
+ try_v!( visit_span!( vis, span) ) ;
384
+ return_result!( V )
385
+ }
386
+
374
387
pub fn walk_capture_by<$( $lt, ) ? V : $trait$( <$lt>) ?>(
375
388
vis: & mut V ,
376
389
capture_by: ref_t!( CaptureBy )
@@ -1509,15 +1522,6 @@ pub mod visit {
1509
1522
visitor. visit_expr_post ( expression)
1510
1523
}
1511
1524
1512
- pub fn walk_arm < ' a , V : Visitor < ' a > > ( visitor : & mut V , arm : & ' a Arm ) -> V :: Result {
1513
- let Arm { attrs, pat, guard, body, span : _, id : _, is_placeholder : _ } = arm;
1514
- walk_list ! ( visitor, visit_attribute, attrs) ;
1515
- try_visit ! ( visitor. visit_pat( pat) ) ;
1516
- visit_opt ! ( visitor, visit_expr, guard) ;
1517
- visit_opt ! ( visitor, visit_expr, body) ;
1518
- V :: Result :: output ( )
1519
- }
1520
-
1521
1525
pub fn walk_vis < ' a , V : Visitor < ' a > > ( visitor : & mut V , vis : & ' a Visibility ) -> V :: Result {
1522
1526
let Visibility { kind, span : _, tokens : _ } = vis;
1523
1527
match kind {
@@ -1705,13 +1709,7 @@ pub mod mut_visit {
1705
1709
}
1706
1710
1707
1711
pub fn walk_flat_map_arm < T : MutVisitor > ( vis : & mut T , mut arm : Arm ) -> SmallVec < [ Arm ; 1 ] > {
1708
- let Arm { attrs, pat, guard, body, span, id, is_placeholder : _ } = & mut arm;
1709
- vis. visit_id ( id) ;
1710
- visit_attrs ( vis, attrs) ;
1711
- vis. visit_pat ( pat) ;
1712
- visit_opt ( guard, |guard| vis. visit_expr ( guard) ) ;
1713
- visit_opt ( body, |body| vis. visit_expr ( body) ) ;
1714
- vis. visit_span ( span) ;
1712
+ vis. visit_arm ( & mut arm) ;
1715
1713
smallvec ! [ arm]
1716
1714
}
1717
1715
0 commit comments