@@ -104,7 +104,6 @@ macro_rules! make_ast_visitor {
104
104
} ;
105
105
}
106
106
107
- #[ allow( unused) ]
108
107
macro_rules! mut_only_visit {
109
108
( $name: ident) => {
110
109
macro_rules! $name {
@@ -120,6 +119,8 @@ macro_rules! make_ast_visitor {
120
119
} ;
121
120
}
122
121
122
+ mut_only_visit!{ visit_lazy_tts}
123
+
123
124
macro_rules! try_v {
124
125
( $visit: expr) => {
125
126
macro_if!{ $( $mut) ? { $visit } else { try_visit!( $visit) } }
@@ -336,6 +337,7 @@ macro_rules! make_ast_visitor {
336
337
make_visit!{ InlineAsmSym ; visit_inline_asm_sym, walk_inline_asm_sym}
337
338
make_visit!{ Label ; visit_label, walk_label}
338
339
make_visit!{ Lifetime , _ ctxt: LifetimeCtxt ; visit_lifetime, walk_lifetime}
340
+ make_visit!{ Local ; visit_local, walk_local}
339
341
make_visit!{ MacCall ; visit_mac_call, walk_mac}
340
342
make_visit!{ MutTy ; visit_mt, walk_mt}
341
343
make_visit!{ Option <P <QSelf >>; visit_qself, walk_qself}
@@ -353,7 +355,6 @@ macro_rules! make_ast_visitor {
353
355
354
356
make_visit!{ P !( Block ) ; visit_block, walk_block}
355
357
make_visit!{ P !( Expr ) ; visit_expr, walk_expr}
356
- make_visit!{ P !( Local ) ; visit_local, walk_local}
357
358
make_visit!{ P !( Pat ) ; visit_pat, walk_pat}
358
359
make_visit!{ P !( Ty ) ; visit_ty, walk_ty}
359
360
@@ -608,6 +609,31 @@ macro_rules! make_ast_visitor {
608
609
return_result!( V )
609
610
}
610
611
612
+ pub fn walk_local<$( $lt, ) ? V : $trait$( <$lt>) ?>(
613
+ vis: & mut V ,
614
+ local: ref_t!( Local )
615
+ ) -> result!( V ) {
616
+ let Local { id, pat, ty, kind, span, colon_sp, attrs, tokens } = local;
617
+ try_v!( visit_id!( vis, id) ) ;
618
+ visit_list!( vis, visit_attribute, attrs) ;
619
+ try_v!( vis. visit_pat( pat) ) ;
620
+ visit_o!( ty, |ty| vis. visit_ty( ty) ) ;
621
+ match kind {
622
+ LocalKind :: Decl => { }
623
+ LocalKind :: Init ( init) => {
624
+ try_v!( vis. visit_expr( init) ) ;
625
+ }
626
+ LocalKind :: InitElse ( init, els) => {
627
+ try_v!( vis. visit_expr( init) ) ;
628
+ try_v!( vis. visit_block( els) ) ;
629
+ }
630
+ }
631
+ visit_lazy_tts!( vis, tokens) ;
632
+ visit_o!( colon_sp, |sp| try_v!( visit_span!( vis, sp) ) ) ;
633
+ try_v!( visit_span!( vis, span) ) ;
634
+ return_result!( V )
635
+ }
636
+
611
637
pub fn walk_mt<$( $lt, ) ? V : $trait$( <$lt>) ?>(
612
638
vis: & mut V ,
613
639
mt: ref_t!( MutTy )
@@ -893,18 +919,6 @@ pub mod visit {
893
919
V :: Result :: output ( )
894
920
}
895
921
896
- pub fn walk_local < ' a , V : Visitor < ' a > > ( visitor : & mut V , local : & ' a Local ) -> V :: Result {
897
- let Local { id : _, pat, ty, kind, span : _, colon_sp : _, attrs, tokens : _ } = local;
898
- walk_list ! ( visitor, visit_attribute, attrs) ;
899
- try_visit ! ( visitor. visit_pat( pat) ) ;
900
- visit_opt ! ( visitor, visit_ty, ty) ;
901
- if let Some ( ( init, els) ) = kind. init_else_opt ( ) {
902
- try_visit ! ( visitor. visit_expr( init) ) ;
903
- visit_opt ! ( visitor, visit_block, els) ;
904
- }
905
- V :: Result :: output ( )
906
- }
907
-
908
922
pub fn walk_trait_ref < ' a , V : Visitor < ' a > > (
909
923
visitor : & mut V ,
910
924
trait_ref : & ' a TraitRef ,
@@ -1853,27 +1867,6 @@ pub mod mut_visit {
1853
1867
}
1854
1868
}
1855
1869
1856
- fn walk_local < T : MutVisitor > ( vis : & mut T , local : & mut P < Local > ) {
1857
- let Local { id, pat, ty, kind, span, colon_sp, attrs, tokens } = local. deref_mut ( ) ;
1858
- vis. visit_id ( id) ;
1859
- visit_attrs ( vis, attrs) ;
1860
- vis. visit_pat ( pat) ;
1861
- visit_opt ( ty, |ty| vis. visit_ty ( ty) ) ;
1862
- match kind {
1863
- LocalKind :: Decl => { }
1864
- LocalKind :: Init ( init) => {
1865
- vis. visit_expr ( init) ;
1866
- }
1867
- LocalKind :: InitElse ( init, els) => {
1868
- vis. visit_expr ( init) ;
1869
- vis. visit_block ( els) ;
1870
- }
1871
- }
1872
- visit_lazy_tts ( vis, tokens) ;
1873
- visit_opt ( colon_sp, |sp| vis. visit_span ( sp) ) ;
1874
- vis. visit_span ( span) ;
1875
- }
1876
-
1877
1870
fn walk_attribute < T : MutVisitor > ( vis : & mut T , attr : & mut Attribute ) {
1878
1871
let Attribute { kind, id : _, style : _, span } = attr;
1879
1872
match kind {
0 commit comments