@@ -1301,6 +1301,29 @@ macro_rules! make_ast_visitor {
13011301 return_result!( V )
13021302 }
13031303
1304+ pub fn walk_attribute<$( $lt, ) ? V : $trait$( <$lt>) ?>(
1305+ vis: & mut V ,
1306+ attr: ref_t!( Attribute )
1307+ ) -> result!( V ) {
1308+ let Attribute { kind, id: _, style: _, span } = attr;
1309+ match kind {
1310+ AttrKind :: Normal ( normal) => {
1311+ let NormalAttr {
1312+ item: AttrItem { unsafety, path, args, tokens } ,
1313+ tokens: attr_tokens,
1314+ } = & $( $mut) ? * * normal;
1315+ visit_safety!( vis, unsafety) ;
1316+ try_v!( vis. visit_path( path, DUMMY_NODE_ID ) ) ;
1317+ try_v!( walk_attr_args( vis, args) ) ;
1318+ visit_lazy_tts!( vis, tokens) ;
1319+ visit_lazy_tts!( vis, attr_tokens) ;
1320+ }
1321+ AttrKind :: DocComment ( _kind, _sym) => { }
1322+ }
1323+ try_v!( visit_span!( vis, span) ) ;
1324+ return_result!( V )
1325+ }
1326+
13041327 pub fn walk_assoc_item<$( $lt, ) ? V : $trait$( <$lt>) ?>(
13051328 visitor: & mut V ,
13061329 item: ref_t!( Item <AssocItemKind >) ,
@@ -1880,20 +1903,6 @@ pub mod visit {
18801903 visitor. visit_expr_post ( expression)
18811904 }
18821905
1883- pub fn walk_attribute < ' a , V : Visitor < ' a > > ( visitor : & mut V , attr : & ' a Attribute ) -> V :: Result {
1884- let Attribute { kind, id : _, style : _, span : _ } = attr;
1885- match kind {
1886- AttrKind :: Normal ( normal) => {
1887- let NormalAttr { item, tokens : _ } = & * * normal;
1888- let AttrItem { unsafety : _, path, args, tokens : _ } = item;
1889- try_visit ! ( visitor. visit_path( path, DUMMY_NODE_ID ) ) ;
1890- try_visit ! ( walk_attr_args( visitor, args) ) ;
1891- }
1892- AttrKind :: DocComment ( _kind, _sym) => { }
1893- }
1894- V :: Result :: output ( )
1895- }
1896-
18971906 pub fn walk_attr_args < ' a , V : Visitor < ' a > > ( visitor : & mut V , args : & ' a AttrArgs ) -> V :: Result {
18981907 match args {
18991908 AttrArgs :: Empty => { }
@@ -2009,8 +2018,7 @@ pub mod mut_visit {
20092018 exprs. flat_map_in_place ( |expr| vis. filter_map_expr ( expr) )
20102019 }
20112020
2012- // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
2013- fn visit_attr_args < T : MutVisitor > ( vis : & mut T , args : & mut AttrArgs ) {
2021+ fn walk_attr_args < T : MutVisitor > ( vis : & mut T , args : & mut AttrArgs ) {
20142022 match args {
20152023 AttrArgs :: Empty => { }
20162024 AttrArgs :: Delimited ( args) => visit_delim_args ( vis, args) ,
@@ -2036,24 +2044,6 @@ pub mod mut_visit {
20362044 vis. visit_span ( close) ;
20372045 }
20382046
2039- fn walk_attribute < T : MutVisitor > ( vis : & mut T , attr : & mut Attribute ) {
2040- let Attribute { kind, id : _, style : _, span } = attr;
2041- match kind {
2042- AttrKind :: Normal ( normal) => {
2043- let NormalAttr {
2044- item : AttrItem { unsafety : _, path, args, tokens } ,
2045- tokens : attr_tokens,
2046- } = & mut * * normal;
2047- vis. visit_path ( path, DUMMY_NODE_ID ) ;
2048- visit_attr_args ( vis, args) ;
2049- visit_lazy_tts ( vis, tokens) ;
2050- visit_lazy_tts ( vis, attr_tokens) ;
2051- }
2052- AttrKind :: DocComment ( _kind, _sym) => { }
2053- }
2054- vis. visit_span ( span) ;
2055- }
2056-
20572047 fn walk_mac < T : MutVisitor > ( vis : & mut T , mac : & mut MacCall ) {
20582048 let MacCall { path, args } = mac;
20592049 vis. visit_path ( path, DUMMY_NODE_ID ) ;
@@ -2220,7 +2210,7 @@ pub mod mut_visit {
22202210 token:: NtMeta ( item) => {
22212211 let AttrItem { unsafety : _, path, args, tokens } = item. deref_mut ( ) ;
22222212 vis. visit_path ( path, DUMMY_NODE_ID ) ;
2223- visit_attr_args ( vis, args) ;
2213+ walk_attr_args ( vis, args) ;
22242214 visit_lazy_tts ( vis, tokens) ;
22252215 }
22262216 token:: NtPath ( path) => vis. visit_path ( path, DUMMY_NODE_ID ) ,
0 commit comments