@@ -1301,6 +1301,29 @@ macro_rules! make_ast_visitor {
1301
1301
return_result!( V )
1302
1302
}
1303
1303
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
+
1304
1327
pub fn walk_assoc_item<$( $lt, ) ? V : $trait$( <$lt>) ?>(
1305
1328
visitor: & mut V ,
1306
1329
item: ref_t!( Item <AssocItemKind >) ,
@@ -1880,20 +1903,6 @@ pub mod visit {
1880
1903
visitor. visit_expr_post ( expression)
1881
1904
}
1882
1905
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
-
1897
1906
pub fn walk_attr_args < ' a , V : Visitor < ' a > > ( visitor : & mut V , args : & ' a AttrArgs ) -> V :: Result {
1898
1907
match args {
1899
1908
AttrArgs :: Empty => { }
@@ -2009,8 +2018,7 @@ pub mod mut_visit {
2009
2018
exprs. flat_map_in_place ( |expr| vis. filter_map_expr ( expr) )
2010
2019
}
2011
2020
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 ) {
2014
2022
match args {
2015
2023
AttrArgs :: Empty => { }
2016
2024
AttrArgs :: Delimited ( args) => visit_delim_args ( vis, args) ,
@@ -2036,24 +2044,6 @@ pub mod mut_visit {
2036
2044
vis. visit_span ( close) ;
2037
2045
}
2038
2046
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
-
2057
2047
fn walk_mac < T : MutVisitor > ( vis : & mut T , mac : & mut MacCall ) {
2058
2048
let MacCall { path, args } = mac;
2059
2049
vis. visit_path ( path, DUMMY_NODE_ID ) ;
@@ -2220,7 +2210,7 @@ pub mod mut_visit {
2220
2210
token:: NtMeta ( item) => {
2221
2211
let AttrItem { unsafety : _, path, args, tokens } = item. deref_mut ( ) ;
2222
2212
vis. visit_path ( path, DUMMY_NODE_ID ) ;
2223
- visit_attr_args ( vis, args) ;
2213
+ walk_attr_args ( vis, args) ;
2224
2214
visit_lazy_tts ( vis, tokens) ;
2225
2215
}
2226
2216
token:: NtPath ( path) => vis. visit_path ( path, DUMMY_NODE_ID ) ,
0 commit comments