@@ -1371,6 +1371,51 @@ macro_rules! make_ast_visitor {
13711371 }
13721372 }
13731373
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+
13741419 make_walk_flat_map!{ Arm , walk_flat_map_arm, visit_arm}
13751420 make_walk_flat_map!{ Attribute , walk_flat_map_attribute, visit_attribute}
13761421 make_walk_flat_map!{ ExprField , walk_flat_map_expr_field, visit_expr_field}
@@ -1511,44 +1556,6 @@ pub mod visit {
15111556 V :: Result :: output ( )
15121557 }
15131558
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-
15521559 pub fn walk_generic_param < ' a , V : Visitor < ' a > > (
15531560 visitor : & mut V ,
15541561 param : & ' a GenericParam ,
@@ -2444,45 +2451,6 @@ pub mod mut_visit {
24442451 smallvec ! [ item]
24452452 }
24462453
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-
24862454 pub fn walk_expr < T : MutVisitor > (
24872455 vis : & mut T ,
24882456 Expr { kind, id, span, attrs, tokens } : & mut Expr ,
0 commit comments