@@ -1162,7 +1162,6 @@ pub mod visit {
11621162
11631163 pub trait WalkItemKind : Sized {
11641164 fn walk < ' a , V : Visitor < ' a > > (
1165- & ' a self ,
11661165 item : & ' a Item < Self > ,
11671166 visitor : & mut V ,
11681167 ) -> V :: Result ;
@@ -1172,12 +1171,14 @@ pub mod visit {
11721171
11731172 impl WalkItemKind for ItemKind {
11741173 fn walk < ' a , V : Visitor < ' a > > (
1175- & ' a self ,
11761174 item : & ' a Item < Self > ,
11771175 visitor : & mut V ,
11781176 ) -> V :: Result {
1179- let Item { id, span, vis, ident, .. } = item;
1180- match self {
1177+ let Item { id, span, ident, vis, attrs, kind, tokens : _ } = item;
1178+ walk_list ! ( visitor, visit_attribute, attrs) ;
1179+ try_visit ! ( visitor. visit_vis( vis) ) ;
1180+ try_visit ! ( visitor. visit_ident( * ident) ) ;
1181+ match kind {
11811182 ItemKind :: ExternCrate ( _rename) => { }
11821183 ItemKind :: Use ( use_tree) => try_visit ! ( visitor. visit_use_tree( use_tree, * id, false ) ) ,
11831184 ItemKind :: Static ( box StaticItem { ty, safety : _, mutability : _, expr } ) => {
@@ -1281,15 +1282,11 @@ pub mod visit {
12811282 }
12821283 }
12831284
1284- pub fn walk_item < ' a , V : Visitor < ' a > > (
1285+ pub fn walk_item < ' a , V : Visitor < ' a > , I : WalkItemKind > (
12851286 visitor : & mut V ,
1286- item : & ' a Item < impl WalkItemKind > ,
1287+ item : & ' a Item < I > ,
12871288 ) -> V :: Result {
1288- let & Item { id : _, span : _, ident, ref vis, ref attrs, ref kind, tokens : _ } = item;
1289- walk_list ! ( visitor, visit_attribute, attrs) ;
1290- try_visit ! ( visitor. visit_vis( vis) ) ;
1291- try_visit ! ( visitor. visit_ident( ident) ) ;
1292- try_visit ! ( kind. walk( item, visitor) ) ;
1289+ try_visit ! ( I :: walk( item, visitor) ) ;
12931290 V :: Result :: output ( )
12941291 }
12951292
@@ -1362,20 +1359,22 @@ pub mod visit {
13621359
13631360 impl WalkItemKind for ForeignItemKind {
13641361 fn walk < ' a , V : Visitor < ' a > > (
1365- & ' a self ,
13661362 item : & ' a Item < Self > ,
13671363 visitor : & mut V ,
13681364 ) -> V :: Result {
1369- let & Item { id, span, ident, ref vis, .. } = item;
1370- match self {
1365+ let Item { id, span, ident, vis, attrs, kind, tokens : _ } = item;
1366+ walk_list ! ( visitor, visit_attribute, attrs) ;
1367+ try_visit ! ( visitor. visit_vis( vis) ) ;
1368+ try_visit ! ( visitor. visit_ident( * ident) ) ;
1369+ match kind {
13711370 ForeignItemKind :: Static ( box StaticItem { ty, mutability : _, expr, safety : _ } ) => {
13721371 try_visit ! ( visitor. visit_ty( ty) ) ;
13731372 visit_opt ! ( visitor, visit_expr, expr) ;
13741373 }
13751374 ForeignItemKind :: Fn ( box Fn { defaultness : _, generics, sig, body } ) => {
13761375 let kind =
1377- FnKind :: Fn ( FnCtxt :: Foreign , ident, sig, vis, generics, body. as_deref ( ) ) ;
1378- try_visit ! ( visitor. visit_fn( kind, span, id) ) ;
1376+ FnKind :: Fn ( FnCtxt :: Foreign , * ident, sig, vis, generics, body. as_deref ( ) ) ;
1377+ try_visit ! ( visitor. visit_fn( kind, * span, * id) ) ;
13791378 }
13801379 ForeignItemKind :: TyAlias ( box TyAlias {
13811380 generics,
0 commit comments