@@ -1159,6 +1159,17 @@ macro_rules! make_ast_visitor {
1159
1159
}
1160
1160
}
1161
1161
1162
+ pub trait WalkItemKind : Sized {
1163
+ fn walk<$( $lt, ) ? V : $trait$( <$lt>) ?>(
1164
+ & $( $lt) ? $( $mut) ? self ,
1165
+ id: NodeId ,
1166
+ span: Span ,
1167
+ vis: ref_t!( Visibility ) ,
1168
+ ident: ref_t!( Ident ) ,
1169
+ visitor: & mut V ,
1170
+ ) -> result!( V ) ;
1171
+ }
1172
+
1162
1173
make_walk_flat_map!{ Arm , walk_flat_map_arm, visit_arm}
1163
1174
make_walk_flat_map!{ Attribute , walk_flat_map_attribute, visit_attribute}
1164
1175
make_walk_flat_map!{ ExprField , walk_flat_map_expr_field, visit_expr_field}
@@ -1278,17 +1289,6 @@ pub mod visit {
1278
1289
GenericArg ,
1279
1290
}
1280
1291
1281
- pub trait WalkItemKind : Sized {
1282
- fn walk < ' a , V : Visitor < ' a > > (
1283
- & ' a self ,
1284
- id : NodeId ,
1285
- span : Span ,
1286
- vis : & ' a Visibility ,
1287
- ident : & ' a Ident ,
1288
- visitor : & mut V ,
1289
- ) -> V :: Result ;
1290
- }
1291
-
1292
1292
make_ast_visitor ! ( Visitor <' ast>) ;
1293
1293
1294
1294
impl WalkItemKind for ItemKind {
@@ -1848,17 +1848,6 @@ pub mod mut_visit {
1848
1848
}
1849
1849
}
1850
1850
1851
- pub trait WalkItemKind {
1852
- fn walk (
1853
- & mut self ,
1854
- id : NodeId ,
1855
- span : Span ,
1856
- vis : & mut Visibility ,
1857
- ident : & mut Ident ,
1858
- visitor : & mut impl MutVisitor
1859
- ) ;
1860
- }
1861
-
1862
1851
make_ast_visitor ! ( MutVisitor , mut ) ;
1863
1852
1864
1853
/// Use a map-style function (`FnOnce(T) -> T`) to overwrite a `&mut T`. Useful
@@ -2272,13 +2261,13 @@ pub mod mut_visit {
2272
2261
}
2273
2262
2274
2263
impl WalkItemKind for ItemKind {
2275
- fn walk (
2264
+ fn walk < V : MutVisitor > (
2276
2265
& mut self ,
2277
2266
id : NodeId ,
2278
2267
span : Span ,
2279
2268
vis : & mut Visibility ,
2280
2269
ident : & mut Ident ,
2281
- visitor : & mut impl MutVisitor
2270
+ visitor : & mut V
2282
2271
) {
2283
2272
match self {
2284
2273
ItemKind :: ExternCrate ( _orig_name) => { }
@@ -2520,13 +2509,14 @@ pub mod mut_visit {
2520
2509
2521
2510
2522
2511
impl WalkItemKind for ForeignItemKind {
2523
- fn walk (
2512
+ fn walk < V : MutVisitor > (
2524
2513
& mut self ,
2525
2514
id : NodeId ,
2526
2515
span : Span ,
2527
2516
vis : & mut Visibility ,
2528
2517
ident : & mut Ident ,
2529
- visitor : & mut impl MutVisitor ) {
2518
+ visitor : & mut V
2519
+ ) {
2530
2520
match self {
2531
2521
ForeignItemKind :: Static ( box StaticItem { ty, mutability : _, expr, safety : _ } ) => {
2532
2522
visitor. visit_ty ( ty) ;
0 commit comments