@@ -1293,6 +1293,29 @@ macro_rules! make_ast_visitor {
1293
1293
return_result!( V )
1294
1294
}
1295
1295
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
+
1296
1319
pub fn walk_assoc_item<$( $lt, ) ? V : $trait$( <$lt>) ?>(
1297
1320
visitor: & mut V ,
1298
1321
item: ref_t!( Item <AssocItemKind >) ,
@@ -1882,20 +1905,6 @@ pub mod visit {
1882
1905
visitor. visit_expr_post ( expression)
1883
1906
}
1884
1907
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
-
1899
1908
pub fn walk_attr_args < ' a , V : Visitor < ' a > > ( visitor : & mut V , args : & ' a AttrArgs ) -> V :: Result {
1900
1909
match args {
1901
1910
AttrArgs :: Empty => { }
@@ -2011,8 +2020,7 @@ pub mod mut_visit {
2011
2020
exprs. flat_map_in_place ( |expr| vis. filter_map_expr ( expr) )
2012
2021
}
2013
2022
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 ) {
2016
2024
match args {
2017
2025
AttrArgs :: Empty => { }
2018
2026
AttrArgs :: Delimited ( args) => visit_delim_args ( vis, args) ,
@@ -2038,24 +2046,6 @@ pub mod mut_visit {
2038
2046
vis. visit_span ( close) ;
2039
2047
}
2040
2048
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
-
2059
2049
fn walk_mac < T : MutVisitor > ( vis : & mut T , mac : & mut MacCall ) {
2060
2050
let MacCall { path, args } = mac;
2061
2051
vis. visit_path ( path, DUMMY_NODE_ID ) ;
@@ -2222,7 +2212,7 @@ pub mod mut_visit {
2222
2212
token:: NtMeta ( item) => {
2223
2213
let AttrItem { unsafety : _, path, args, tokens } = item. deref_mut ( ) ;
2224
2214
vis. visit_path ( path, DUMMY_NODE_ID ) ;
2225
- visit_attr_args ( vis, args) ;
2215
+ walk_attr_args ( vis, args) ;
2226
2216
visit_lazy_tts ( vis, tokens) ;
2227
2217
}
2228
2218
token:: NtPath ( path) => vis. visit_path ( path, DUMMY_NODE_ID ) ,
0 commit comments