@@ -120,6 +120,7 @@ macro_rules! make_ast_visitor {
120120 }
121121
122122 mut_only_visit!{ visit_lazy_tts}
123+ mut_only_visit!{ visit_delim_args}
123124
124125 macro_rules! try_v {
125126 ( $visit: expr) => {
@@ -309,6 +310,7 @@ macro_rules! make_ast_visitor {
309310 make_visit!{ AnonConst ; visit_anon_const, walk_anon_const}
310311 make_visit!{ Arm ; visit_arm, walk_arm}
311312 make_visit!{ AssocItemConstraint ; visit_assoc_item_constraint, walk_assoc_item_constraint}
313+ make_visit!{ AttrArgs ; visit_attr_args, walk_attr_args}
312314 make_visit!{ Attribute ; visit_attribute, walk_attribute}
313315 make_visit!{ Block ; visit_block, walk_block}
314316 make_visit!{ CaptureBy ; visit_capture_by, walk_capture_by}
@@ -398,6 +400,26 @@ macro_rules! make_ast_visitor {
398400 return_result!( V )
399401 }
400402
403+ pub fn walk_attr_args<$( $lt, ) ? V : $trait$( <$lt>) ?>(
404+ vis: & mut V ,
405+ args: ref_t!( AttrArgs )
406+ ) -> result!( V ) {
407+ match args {
408+ AttrArgs :: Empty => { }
409+ AttrArgs :: Delimited ( args) => {
410+ visit_delim_args!( vis, args) ;
411+ }
412+ AttrArgs :: Eq ( eq_span, AttrArgsEq :: Ast ( expr) ) => {
413+ try_v!( vis. visit_expr( expr) ) ;
414+ try_v!( visit_span!( vis, eq_span) ) ;
415+ }
416+ AttrArgs :: Eq ( _eq_span, AttrArgsEq :: Hir ( lit) ) => {
417+ unreachable!( "in literal form when visiting mac args eq: {:?}" , lit)
418+ }
419+ }
420+ return_result!( V )
421+ }
422+
401423 pub fn walk_block<$( $lt, ) ? V : $trait$( <$lt>) ?>(
402424 vis: & mut V ,
403425 block: ref_t!( Block )
@@ -1640,24 +1662,12 @@ pub mod visit {
16401662 let NormalAttr { item, tokens : _ } = & * * normal;
16411663 let AttrItem { unsafety : _, path, args, tokens : _ } = item;
16421664 try_visit ! ( visitor. visit_path( path, DUMMY_NODE_ID ) ) ;
1643- try_visit ! ( walk_attr_args ( visitor, args) ) ;
1665+ try_visit ! ( visitor. visit_attr_args ( args) ) ;
16441666 }
16451667 AttrKind :: DocComment ( _kind, _sym) => { }
16461668 }
16471669 V :: Result :: output ( )
16481670 }
1649-
1650- pub fn walk_attr_args < ' a , V : Visitor < ' a > > ( visitor : & mut V , args : & ' a AttrArgs ) -> V :: Result {
1651- match args {
1652- AttrArgs :: Empty => { }
1653- AttrArgs :: Delimited ( _args) => { }
1654- AttrArgs :: Eq ( _eq_span, AttrArgsEq :: Ast ( expr) ) => try_visit ! ( visitor. visit_expr( expr) ) ,
1655- AttrArgs :: Eq ( _eq_span, AttrArgsEq :: Hir ( lit) ) => {
1656- unreachable ! ( "in literal form when walking mac args eq: {:?}" , lit)
1657- }
1658- }
1659- V :: Result :: output ( )
1660- }
16611671}
16621672
16631673pub mod mut_visit {
@@ -1756,21 +1766,6 @@ pub mod mut_visit {
17561766 visit_vec ( bounds, |bound| vis. visit_param_bound ( bound, ctxt) ) ;
17571767 }
17581768
1759- // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
1760- fn visit_attr_args < T : MutVisitor > ( vis : & mut T , args : & mut AttrArgs ) {
1761- match args {
1762- AttrArgs :: Empty => { }
1763- AttrArgs :: Delimited ( args) => visit_delim_args ( vis, args) ,
1764- AttrArgs :: Eq ( eq_span, AttrArgsEq :: Ast ( expr) ) => {
1765- vis. visit_expr ( expr) ;
1766- vis. visit_span ( eq_span) ;
1767- }
1768- AttrArgs :: Eq ( _eq_span, AttrArgsEq :: Hir ( lit) ) => {
1769- unreachable ! ( "in literal form when visiting mac args eq: {:?}" , lit)
1770- }
1771- }
1772- }
1773-
17741769 // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
17751770 fn visit_delim_args < T : MutVisitor > ( vis : & mut T , args : & mut DelimArgs ) {
17761771 let DelimArgs { dspan, delim : _, tokens } = args;
@@ -1891,7 +1886,7 @@ pub mod mut_visit {
18911886 tokens : attr_tokens,
18921887 } = & mut * * normal;
18931888 vis. visit_path ( path, DUMMY_NODE_ID ) ;
1894- visit_attr_args ( vis , args) ;
1889+ vis . visit_attr_args ( args) ;
18951890 visit_lazy_tts ( vis, tokens) ;
18961891 visit_lazy_tts ( vis, attr_tokens) ;
18971892 }
@@ -2074,7 +2069,7 @@ pub mod mut_visit {
20742069 token:: NtMeta ( item) => {
20752070 let AttrItem { unsafety : _, path, args, tokens } = item. deref_mut ( ) ;
20762071 vis. visit_path ( path, DUMMY_NODE_ID ) ;
2077- visit_attr_args ( vis , args) ;
2072+ vis . visit_attr_args ( args) ;
20782073 visit_lazy_tts ( vis, tokens) ;
20792074 }
20802075 token:: NtPath ( path) => vis. visit_path ( path, DUMMY_NODE_ID ) ,
0 commit comments