@@ -1159,6 +1159,17 @@ macro_rules! make_ast_visitor {
11591159 }
11601160 }
11611161
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+
11621173 make_walk_flat_map!{ Arm , walk_flat_map_arm, visit_arm}
11631174 make_walk_flat_map!{ Attribute , walk_flat_map_attribute, visit_attribute}
11641175 make_walk_flat_map!{ ExprField , walk_flat_map_expr_field, visit_expr_field}
@@ -1278,17 +1289,6 @@ pub mod visit {
12781289 GenericArg ,
12791290 }
12801291
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-
12921292 make_ast_visitor ! ( Visitor <' ast>) ;
12931293
12941294 impl WalkItemKind for ItemKind {
@@ -1848,17 +1848,6 @@ pub mod mut_visit {
18481848 }
18491849 }
18501850
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-
18621851 make_ast_visitor ! ( MutVisitor , mut ) ;
18631852
18641853 /// Use a map-style function (`FnOnce(T) -> T`) to overwrite a `&mut T`. Useful
@@ -2272,13 +2261,13 @@ pub mod mut_visit {
22722261 }
22732262
22742263 impl WalkItemKind for ItemKind {
2275- fn walk (
2264+ fn walk < V : MutVisitor > (
22762265 & mut self ,
22772266 id : NodeId ,
22782267 span : Span ,
22792268 vis : & mut Visibility ,
22802269 ident : & mut Ident ,
2281- visitor : & mut impl MutVisitor
2270+ visitor : & mut V
22822271 ) {
22832272 match self {
22842273 ItemKind :: ExternCrate ( _orig_name) => { }
@@ -2520,13 +2509,14 @@ pub mod mut_visit {
25202509
25212510
25222511 impl WalkItemKind for ForeignItemKind {
2523- fn walk (
2512+ fn walk < V : MutVisitor > (
25242513 & mut self ,
25252514 id : NodeId ,
25262515 span : Span ,
25272516 vis : & mut Visibility ,
25282517 ident : & mut Ident ,
2529- visitor : & mut impl MutVisitor ) {
2518+ visitor : & mut V
2519+ ) {
25302520 match self {
25312521 ForeignItemKind :: Static ( box StaticItem { ty, mutability : _, expr, safety : _ } ) => {
25322522 visitor. visit_ty ( ty) ;
0 commit comments