@@ -1293,6 +1293,29 @@ macro_rules! make_ast_visitor {
12931293 return_result!( V )
12941294 }
12951295
1296+ pub fn walk_attribute<$( $lt, ) ? V : $trait$( <$lt>) ?>(
1297+ vis: & mut V ,
1298+ attr: ref_t!( Attribute )
1299+ ) -> result!( V ) {
1300+ let Attribute { kind, id: _, style: _, span } = attr;
1301+ match kind {
1302+ AttrKind :: Normal ( normal) => {
1303+ let NormalAttr {
1304+ item: AttrItem { unsafety, path, args, tokens } ,
1305+ tokens: attr_tokens,
1306+ } = & $( $mut) ? * * normal;
1307+ visit_safety!( vis, unsafety) ;
1308+ try_v!( vis. visit_path( path, DUMMY_NODE_ID ) ) ;
1309+ try_v!( walk_attr_args( vis, args) ) ;
1310+ visit_lazy_tts!( vis, tokens) ;
1311+ visit_lazy_tts!( vis, attr_tokens) ;
1312+ }
1313+ AttrKind :: DocComment ( _kind, _sym) => { }
1314+ }
1315+ try_v!( visit_span!( vis, span) ) ;
1316+ return_result!( V )
1317+ }
1318+
12961319 pub fn walk_assoc_item<$( $lt, ) ? V : $trait$( <$lt>) ?>(
12971320 visitor: & mut V ,
12981321 item: ref_t!( Item <AssocItemKind >) ,
@@ -1882,20 +1905,6 @@ pub mod visit {
18821905 visitor. visit_expr_post ( expression)
18831906 }
18841907
1885- pub fn walk_attribute < ' a , V : Visitor < ' a > > ( visitor : & mut V , attr : & ' a Attribute ) -> V :: Result {
1886- let Attribute { kind, id : _, style : _, span : _ } = attr;
1887- match kind {
1888- AttrKind :: Normal ( normal) => {
1889- let NormalAttr { item, tokens : _ } = & * * normal;
1890- let AttrItem { unsafety : _, path, args, tokens : _ } = item;
1891- try_visit ! ( visitor. visit_path( path, DUMMY_NODE_ID ) ) ;
1892- try_visit ! ( walk_attr_args( visitor, args) ) ;
1893- }
1894- AttrKind :: DocComment ( _kind, _sym) => { }
1895- }
1896- V :: Result :: output ( )
1897- }
1898-
18991908 pub fn walk_attr_args < ' a , V : Visitor < ' a > > ( visitor : & mut V , args : & ' a AttrArgs ) -> V :: Result {
19001909 match args {
19011910 AttrArgs :: Empty => { }
@@ -2011,8 +2020,7 @@ pub mod mut_visit {
20112020 exprs. flat_map_in_place ( |expr| vis. filter_map_expr ( expr) )
20122021 }
20132022
2014- // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
2015- fn visit_attr_args < T : MutVisitor > ( vis : & mut T , args : & mut AttrArgs ) {
2023+ fn walk_attr_args < T : MutVisitor > ( vis : & mut T , args : & mut AttrArgs ) {
20162024 match args {
20172025 AttrArgs :: Empty => { }
20182026 AttrArgs :: Delimited ( args) => visit_delim_args ( vis, args) ,
@@ -2038,24 +2046,6 @@ pub mod mut_visit {
20382046 vis. visit_span ( close) ;
20392047 }
20402048
2041- fn walk_attribute < T : MutVisitor > ( vis : & mut T , attr : & mut Attribute ) {
2042- let Attribute { kind, id : _, style : _, span } = attr;
2043- match kind {
2044- AttrKind :: Normal ( normal) => {
2045- let NormalAttr {
2046- item : AttrItem { unsafety : _, path, args, tokens } ,
2047- tokens : attr_tokens,
2048- } = & mut * * normal;
2049- vis. visit_path ( path, DUMMY_NODE_ID ) ;
2050- visit_attr_args ( vis, args) ;
2051- visit_lazy_tts ( vis, tokens) ;
2052- visit_lazy_tts ( vis, attr_tokens) ;
2053- }
2054- AttrKind :: DocComment ( _kind, _sym) => { }
2055- }
2056- vis. visit_span ( span) ;
2057- }
2058-
20592049 fn walk_mac < T : MutVisitor > ( vis : & mut T , mac : & mut MacCall ) {
20602050 let MacCall { path, args } = mac;
20612051 vis. visit_path ( path, DUMMY_NODE_ID ) ;
@@ -2222,7 +2212,7 @@ pub mod mut_visit {
22222212 token:: NtMeta ( item) => {
22232213 let AttrItem { unsafety : _, path, args, tokens } = item. deref_mut ( ) ;
22242214 vis. visit_path ( path, DUMMY_NODE_ID ) ;
2225- visit_attr_args ( vis, args) ;
2215+ walk_attr_args ( vis, args) ;
22262216 visit_lazy_tts ( vis, tokens) ;
22272217 }
22282218 token:: NtPath ( path) => vis. visit_path ( path, DUMMY_NODE_ID ) ,
0 commit comments