@@ -107,7 +107,6 @@ macro_rules! make_ast_visitor {
107
107
} ;
108
108
}
109
109
110
- #[ allow( unused) ]
111
110
macro_rules! mut_only_visit {
112
111
( $name: ident) => {
113
112
macro_rules! $name {
@@ -123,6 +122,8 @@ macro_rules! make_ast_visitor {
123
122
} ;
124
123
}
125
124
125
+ mut_only_visit!{ visit_lazy_tts}
126
+
126
127
#[ allow( unused) ]
127
128
macro_rules! try_v {
128
129
( $visit: expr) => {
@@ -342,6 +343,7 @@ macro_rules! make_ast_visitor {
342
343
make_visit!{ InlineAsmSym ; visit_inline_asm_sym, walk_inline_asm_sym}
343
344
make_visit!{ Label ; visit_label, walk_label}
344
345
make_visit!{ Lifetime , _ ctxt: LifetimeCtxt ; visit_lifetime, walk_lifetime}
346
+ make_visit!{ Local ; visit_local, walk_local}
345
347
make_visit!{ MacCall ; visit_mac_call, walk_mac}
346
348
make_visit!{ MutTy ; visit_mt, walk_mt}
347
349
make_visit!{ Option <P <QSelf >>; visit_qself, walk_qself}
@@ -359,7 +361,6 @@ macro_rules! make_ast_visitor {
359
361
360
362
make_visit!{ P !( Block ) ; visit_block, walk_block}
361
363
make_visit!{ P !( Expr ) ; visit_expr, walk_expr}
362
- make_visit!{ P !( Local ) ; visit_local, walk_local}
363
364
make_visit!{ P !( Pat ) ; visit_pat, walk_pat}
364
365
make_visit!{ P !( Ty ) ; visit_ty, walk_ty}
365
366
@@ -614,6 +615,31 @@ macro_rules! make_ast_visitor {
614
615
return_result!( V )
615
616
}
616
617
618
+ pub fn walk_local<$( $lt, ) ? V : $trait$( <$lt>) ?>(
619
+ vis: & mut V ,
620
+ local: ref_t!( Local )
621
+ ) -> result!( V ) {
622
+ let Local { id, pat, ty, kind, span, colon_sp, attrs, tokens } = local;
623
+ try_v!( visit_id!( vis, id) ) ;
624
+ visit_list!( vis, visit_attribute, attrs) ;
625
+ try_v!( vis. visit_pat( pat) ) ;
626
+ visit_o!( ty, |ty| vis. visit_ty( ty) ) ;
627
+ match kind {
628
+ LocalKind :: Decl => { }
629
+ LocalKind :: Init ( init) => {
630
+ try_v!( vis. visit_expr( init) ) ;
631
+ }
632
+ LocalKind :: InitElse ( init, els) => {
633
+ try_v!( vis. visit_expr( init) ) ;
634
+ try_v!( vis. visit_block( els) ) ;
635
+ }
636
+ }
637
+ visit_lazy_tts!( vis, tokens) ;
638
+ visit_o!( colon_sp, |sp| try_v!( visit_span!( vis, sp) ) ) ;
639
+ try_v!( visit_span!( vis, span) ) ;
640
+ return_result!( V )
641
+ }
642
+
617
643
pub fn walk_mt<$( $lt, ) ? V : $trait$( <$lt>) ?>(
618
644
vis: & mut V ,
619
645
mt: ref_t!( MutTy )
@@ -899,18 +925,6 @@ pub mod visit {
899
925
V :: Result :: output ( )
900
926
}
901
927
902
- pub fn walk_local < ' a , V : Visitor < ' a > > ( visitor : & mut V , local : & ' a Local ) -> V :: Result {
903
- let Local { id : _, pat, ty, kind, span : _, colon_sp : _, attrs, tokens : _ } = local;
904
- walk_list ! ( visitor, visit_attribute, attrs) ;
905
- try_visit ! ( visitor. visit_pat( pat) ) ;
906
- visit_opt ! ( visitor, visit_ty, ty) ;
907
- if let Some ( ( init, els) ) = kind. init_else_opt ( ) {
908
- try_visit ! ( visitor. visit_expr( init) ) ;
909
- visit_opt ! ( visitor, visit_block, els) ;
910
- }
911
- V :: Result :: output ( )
912
- }
913
-
914
928
pub fn walk_trait_ref < ' a , V : Visitor < ' a > > (
915
929
visitor : & mut V ,
916
930
trait_ref : & ' a TraitRef ,
@@ -1859,27 +1873,6 @@ pub mod mut_visit {
1859
1873
}
1860
1874
}
1861
1875
1862
- fn walk_local < T : MutVisitor > ( vis : & mut T , local : & mut P < Local > ) {
1863
- let Local { id, pat, ty, kind, span, colon_sp, attrs, tokens } = local. deref_mut ( ) ;
1864
- vis. visit_id ( id) ;
1865
- visit_attrs ( vis, attrs) ;
1866
- vis. visit_pat ( pat) ;
1867
- visit_opt ( ty, |ty| vis. visit_ty ( ty) ) ;
1868
- match kind {
1869
- LocalKind :: Decl => { }
1870
- LocalKind :: Init ( init) => {
1871
- vis. visit_expr ( init) ;
1872
- }
1873
- LocalKind :: InitElse ( init, els) => {
1874
- vis. visit_expr ( init) ;
1875
- vis. visit_block ( els) ;
1876
- }
1877
- }
1878
- visit_lazy_tts ( vis, tokens) ;
1879
- visit_opt ( colon_sp, |sp| vis. visit_span ( sp) ) ;
1880
- vis. visit_span ( span) ;
1881
- }
1882
-
1883
1876
fn walk_attribute < T : MutVisitor > ( vis : & mut T , attr : & mut Attribute ) {
1884
1877
let Attribute { kind, id : _, style : _, span } = attr;
1885
1878
match kind {
0 commit comments