@@ -1371,6 +1371,51 @@ macro_rules! make_ast_visitor {
1371
1371
}
1372
1372
}
1373
1373
1374
+ impl WalkItemKind for ForeignItemKind {
1375
+ fn walk<$( $lt, ) ? V : $trait$( <$lt>) ?>(
1376
+ item: ref_t!( Item <Self >) ,
1377
+ visitor: & mut V ,
1378
+ ) -> result!( V ) {
1379
+ let Item { attrs, id, span, vis, ident, kind, tokens } = item;
1380
+ try_v!( visit_id!( visitor, id) ) ;
1381
+ visit_list!( visitor, visit_attribute, flat_map_attribute, attrs) ;
1382
+ try_v!( visitor. visit_vis( vis) ) ;
1383
+ try_v!( visit_ident!( visitor, ident) ) ;
1384
+ match kind {
1385
+ ForeignItemKind :: Static ( box StaticItem { safety, ty, mutability: _, expr } ) => {
1386
+ visit_safety!( visitor, safety) ;
1387
+ try_v!( visitor. visit_ty( ty) ) ;
1388
+ visit_o!( expr, |expr| visitor. visit_expr( expr) ) ;
1389
+ }
1390
+ ForeignItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
1391
+ visit_defaultness!( visitor, defaultness) ;
1392
+ let kind =
1393
+ FnKind :: Fn ( FnCtxt :: Foreign , * ident, sig, vis, generics, as_deref!( body) ) ;
1394
+ visitor. visit_fn( kind, * span, * id) ;
1395
+ }
1396
+ ForeignItemKind :: TyAlias ( box TyAlias {
1397
+ defaultness,
1398
+ generics,
1399
+ where_clauses,
1400
+ bounds,
1401
+ ty,
1402
+ } ) => {
1403
+ visit_defaultness!( visitor, defaultness) ;
1404
+ try_v!( visitor. visit_generics( generics) ) ;
1405
+ visit_list!( visitor, visit_param_bound, bounds; BoundKind :: Bound ) ;
1406
+ visit_o!( ty, |ty| visitor. visit_ty( ty) ) ;
1407
+ walk_ty_alias_where_clauses!( visitor, where_clauses) ;
1408
+ }
1409
+ ForeignItemKind :: MacCall ( mac) => {
1410
+ try_v!( visitor. visit_mac_call( mac) ) ;
1411
+ }
1412
+ }
1413
+ visit_lazy_tts!( visitor, tokens) ;
1414
+ try_v!( visit_span!( visitor, span) ) ;
1415
+ return_result!( V )
1416
+ }
1417
+ }
1418
+
1374
1419
make_walk_flat_map!{ Arm , walk_flat_map_arm, visit_arm}
1375
1420
make_walk_flat_map!{ Attribute , walk_flat_map_attribute, visit_attribute}
1376
1421
make_walk_flat_map!{ ExprField , walk_flat_map_expr_field, visit_expr_field}
@@ -1511,44 +1556,6 @@ pub mod visit {
1511
1556
V :: Result :: output ( )
1512
1557
}
1513
1558
1514
- impl WalkItemKind for ForeignItemKind {
1515
- fn walk < ' a , V : Visitor < ' a > > (
1516
- item : & ' a Item < Self > ,
1517
- visitor : & mut V ,
1518
- ) -> V :: Result {
1519
- let Item { id, span, ident, vis, attrs, kind, tokens : _ } = item;
1520
- walk_list ! ( visitor, visit_attribute, attrs) ;
1521
- try_visit ! ( visitor. visit_vis( vis) ) ;
1522
- try_visit ! ( visitor. visit_ident( * ident) ) ;
1523
- match kind {
1524
- ForeignItemKind :: Static ( box StaticItem { ty, mutability : _, expr, safety : _ } ) => {
1525
- try_visit ! ( visitor. visit_ty( ty) ) ;
1526
- visit_opt ! ( visitor, visit_expr, expr) ;
1527
- }
1528
- ForeignItemKind :: Fn ( box Fn { defaultness : _, generics, sig, body } ) => {
1529
- let kind =
1530
- FnKind :: Fn ( FnCtxt :: Foreign , * ident, sig, vis, generics, body. as_deref ( ) ) ;
1531
- try_visit ! ( visitor. visit_fn( kind, * span, * id) ) ;
1532
- }
1533
- ForeignItemKind :: TyAlias ( box TyAlias {
1534
- generics,
1535
- bounds,
1536
- ty,
1537
- defaultness : _,
1538
- where_clauses : _,
1539
- } ) => {
1540
- try_visit ! ( visitor. visit_generics( generics) ) ;
1541
- walk_list ! ( visitor, visit_param_bound, bounds, BoundKind :: Bound ) ;
1542
- visit_opt ! ( visitor, visit_ty, ty) ;
1543
- }
1544
- ForeignItemKind :: MacCall ( mac) => {
1545
- try_visit ! ( visitor. visit_mac_call( mac) ) ;
1546
- }
1547
- }
1548
- V :: Result :: output ( )
1549
- }
1550
- }
1551
-
1552
1559
pub fn walk_generic_param < ' a , V : Visitor < ' a > > (
1553
1560
visitor : & mut V ,
1554
1561
param : & ' a GenericParam ,
@@ -2444,45 +2451,6 @@ pub mod mut_visit {
2444
2451
smallvec ! [ item]
2445
2452
}
2446
2453
2447
-
2448
- impl WalkItemKind for ForeignItemKind {
2449
- fn walk < V : MutVisitor > ( item : & mut Item < Self > , visitor : & mut V ) {
2450
- let Item { attrs, id, span, vis, ident, kind, tokens } = item;
2451
- visitor. visit_id ( id) ;
2452
- visit_attrs ( visitor, attrs) ;
2453
- visitor. visit_vis ( vis) ;
2454
- visitor. visit_ident ( ident) ;
2455
- match kind {
2456
- ForeignItemKind :: Static ( box StaticItem { ty, mutability : _, expr, safety : _ } ) => {
2457
- visitor. visit_ty ( ty) ;
2458
- visit_opt ( expr, |expr| visitor. visit_expr ( expr) ) ;
2459
- }
2460
- ForeignItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
2461
- visit_defaultness ( visitor, defaultness) ;
2462
- let kind =
2463
- FnKind :: Fn ( FnCtxt :: Foreign , * ident, sig, vis, generics, body. as_deref_mut ( ) ) ;
2464
- visitor. visit_fn ( kind, * span, * id) ;
2465
- }
2466
- ForeignItemKind :: TyAlias ( box TyAlias {
2467
- defaultness,
2468
- generics,
2469
- where_clauses,
2470
- bounds,
2471
- ty,
2472
- } ) => {
2473
- visit_defaultness ( visitor, defaultness) ;
2474
- visitor. visit_generics ( generics) ;
2475
- visit_bounds ( visitor, bounds, BoundKind :: Bound ) ;
2476
- visit_opt ( ty, |ty| visitor. visit_ty ( ty) ) ;
2477
- walk_ty_alias_where_clauses ( visitor, where_clauses) ;
2478
- }
2479
- ForeignItemKind :: MacCall ( mac) => visitor. visit_mac_call ( mac) ,
2480
- }
2481
- visit_lazy_tts ( visitor, tokens) ;
2482
- visitor. visit_span ( span) ;
2483
- }
2484
- }
2485
-
2486
2454
pub fn walk_expr < T : MutVisitor > (
2487
2455
vis : & mut T ,
2488
2456
Expr { kind, id, span, attrs, tokens } : & mut Expr ,
0 commit comments