@@ -1162,7 +1162,6 @@ pub mod visit {
1162
1162
1163
1163
pub trait WalkItemKind : Sized {
1164
1164
fn walk < ' a , V : Visitor < ' a > > (
1165
- & ' a self ,
1166
1165
item : & ' a Item < Self > ,
1167
1166
visitor : & mut V ,
1168
1167
) -> V :: Result ;
@@ -1172,12 +1171,14 @@ pub mod visit {
1172
1171
1173
1172
impl WalkItemKind for ItemKind {
1174
1173
fn walk < ' a , V : Visitor < ' a > > (
1175
- & ' a self ,
1176
1174
item : & ' a Item < Self > ,
1177
1175
visitor : & mut V ,
1178
1176
) -> 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 {
1181
1182
ItemKind :: ExternCrate ( _rename) => { }
1182
1183
ItemKind :: Use ( use_tree) => try_visit ! ( visitor. visit_use_tree( use_tree, * id, false ) ) ,
1183
1184
ItemKind :: Static ( box StaticItem { ty, safety : _, mutability : _, expr } ) => {
@@ -1281,15 +1282,11 @@ pub mod visit {
1281
1282
}
1282
1283
}
1283
1284
1284
- pub fn walk_item < ' a , V : Visitor < ' a > > (
1285
+ pub fn walk_item < ' a , V : Visitor < ' a > , I : WalkItemKind > (
1285
1286
visitor : & mut V ,
1286
- item : & ' a Item < impl WalkItemKind > ,
1287
+ item : & ' a Item < I > ,
1287
1288
) -> 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) ) ;
1293
1290
V :: Result :: output ( )
1294
1291
}
1295
1292
@@ -1362,20 +1359,22 @@ pub mod visit {
1362
1359
1363
1360
impl WalkItemKind for ForeignItemKind {
1364
1361
fn walk < ' a , V : Visitor < ' a > > (
1365
- & ' a self ,
1366
1362
item : & ' a Item < Self > ,
1367
1363
visitor : & mut V ,
1368
1364
) -> 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 {
1371
1370
ForeignItemKind :: Static ( box StaticItem { ty, mutability : _, expr, safety : _ } ) => {
1372
1371
try_visit ! ( visitor. visit_ty( ty) ) ;
1373
1372
visit_opt ! ( visitor, visit_expr, expr) ;
1374
1373
}
1375
1374
ForeignItemKind :: Fn ( box Fn { defaultness : _, generics, sig, body } ) => {
1376
1375
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) ) ;
1379
1378
}
1380
1379
ForeignItemKind :: TyAlias ( box TyAlias {
1381
1380
generics,
0 commit comments