@@ -123,6 +123,7 @@ macro_rules! make_ast_visitor {
123123 }
124124
125125 mut_only_visit!{ visit_lazy_tts}
126+ mut_only_visit!{ visit_delim_args}
126127
127128 #[ allow( unused) ]
128129 macro_rules! try_v {
@@ -315,6 +316,7 @@ macro_rules! make_ast_visitor {
315316 make_visit!{ AnonConst ; visit_anon_const, walk_anon_const}
316317 make_visit!{ Arm ; visit_arm, walk_arm}
317318 make_visit!{ AssocItemConstraint ; visit_assoc_item_constraint, walk_assoc_item_constraint}
319+ make_visit!{ AttrArgs ; visit_attr_args, walk_attr_args}
318320 make_visit!{ Attribute ; visit_attribute, walk_attribute}
319321 make_visit!{ Block ; visit_block, walk_block}
320322 make_visit!{ CaptureBy ; visit_capture_by, walk_capture_by}
@@ -404,6 +406,26 @@ macro_rules! make_ast_visitor {
404406 return_result!( V )
405407 }
406408
409+ pub fn walk_attr_args<$( $lt, ) ? V : $trait$( <$lt>) ?>(
410+ vis: & mut V ,
411+ args: ref_t!( AttrArgs )
412+ ) -> result!( V ) {
413+ match args {
414+ AttrArgs :: Empty => { }
415+ AttrArgs :: Delimited ( args) => {
416+ visit_delim_args!( vis, args) ;
417+ }
418+ AttrArgs :: Eq ( eq_span, AttrArgsEq :: Ast ( expr) ) => {
419+ try_v!( vis. visit_expr( expr) ) ;
420+ try_v!( visit_span!( vis, eq_span) ) ;
421+ }
422+ AttrArgs :: Eq ( _eq_span, AttrArgsEq :: Hir ( lit) ) => {
423+ unreachable!( "in literal form when visiting mac args eq: {:?}" , lit)
424+ }
425+ }
426+ return_result!( V )
427+ }
428+
407429 pub fn walk_block<$( $lt, ) ? V : $trait$( <$lt>) ?>(
408430 vis: & mut V ,
409431 block: ref_t!( Block )
@@ -1646,24 +1668,12 @@ pub mod visit {
16461668 let NormalAttr { item, tokens : _ } = & * * normal;
16471669 let AttrItem { unsafety : _, path, args, tokens : _ } = item;
16481670 try_visit ! ( visitor. visit_path( path, DUMMY_NODE_ID ) ) ;
1649- try_visit ! ( walk_attr_args ( visitor, args) ) ;
1671+ try_visit ! ( visitor. visit_attr_args ( args) ) ;
16501672 }
16511673 AttrKind :: DocComment ( _kind, _sym) => { }
16521674 }
16531675 V :: Result :: output ( )
16541676 }
1655-
1656- pub fn walk_attr_args < ' a , V : Visitor < ' a > > ( visitor : & mut V , args : & ' a AttrArgs ) -> V :: Result {
1657- match args {
1658- AttrArgs :: Empty => { }
1659- AttrArgs :: Delimited ( _args) => { }
1660- AttrArgs :: Eq ( _eq_span, AttrArgsEq :: Ast ( expr) ) => try_visit ! ( visitor. visit_expr( expr) ) ,
1661- AttrArgs :: Eq ( _eq_span, AttrArgsEq :: Hir ( lit) ) => {
1662- unreachable ! ( "in literal form when walking mac args eq: {:?}" , lit)
1663- }
1664- }
1665- V :: Result :: output ( )
1666- }
16671677}
16681678
16691679pub mod mut_visit {
@@ -1762,21 +1772,6 @@ pub mod mut_visit {
17621772 visit_vec ( bounds, |bound| vis. visit_param_bound ( bound, ctxt) ) ;
17631773 }
17641774
1765- // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
1766- fn visit_attr_args < T : MutVisitor > ( vis : & mut T , args : & mut AttrArgs ) {
1767- match args {
1768- AttrArgs :: Empty => { }
1769- AttrArgs :: Delimited ( args) => visit_delim_args ( vis, args) ,
1770- AttrArgs :: Eq ( eq_span, AttrArgsEq :: Ast ( expr) ) => {
1771- vis. visit_expr ( expr) ;
1772- vis. visit_span ( eq_span) ;
1773- }
1774- AttrArgs :: Eq ( _eq_span, AttrArgsEq :: Hir ( lit) ) => {
1775- unreachable ! ( "in literal form when visiting mac args eq: {:?}" , lit)
1776- }
1777- }
1778- }
1779-
17801775 // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
17811776 fn visit_delim_args < T : MutVisitor > ( vis : & mut T , args : & mut DelimArgs ) {
17821777 let DelimArgs { dspan, delim : _, tokens } = args;
@@ -1897,7 +1892,7 @@ pub mod mut_visit {
18971892 tokens : attr_tokens,
18981893 } = & mut * * normal;
18991894 vis. visit_path ( path, DUMMY_NODE_ID ) ;
1900- visit_attr_args ( vis , args) ;
1895+ vis . visit_attr_args ( args) ;
19011896 visit_lazy_tts ( vis, tokens) ;
19021897 visit_lazy_tts ( vis, attr_tokens) ;
19031898 }
@@ -2080,7 +2075,7 @@ pub mod mut_visit {
20802075 token:: NtMeta ( item) => {
20812076 let AttrItem { unsafety : _, path, args, tokens } = item. deref_mut ( ) ;
20822077 vis. visit_path ( path, DUMMY_NODE_ID ) ;
2083- visit_attr_args ( vis , args) ;
2078+ vis . visit_attr_args ( args) ;
20842079 visit_lazy_tts ( vis, tokens) ;
20852080 }
20862081 token:: NtPath ( path) => vis. visit_path ( path, DUMMY_NODE_ID ) ,
0 commit comments