@@ -77,9 +77,9 @@ macro_rules! mutability_dependent {
77
77
fn flat_map_assoc_item(
78
78
& mut self ,
79
79
i: P <AssocItem >,
80
- _ctxt : AssocCtxt ,
80
+ ctxt : AssocCtxt ,
81
81
) -> SmallVec <[ P <AssocItem >; 1 ] > {
82
- walk_flat_map_item ( self , i)
82
+ walk_flat_map_assoc_item ( self , i, ctxt )
83
83
}
84
84
85
85
fn visit_coroutine_kind( & mut self , a: & mut CoroutineKind ) {
@@ -2409,79 +2409,6 @@ pub mod mut_visit {
2409
2409
}
2410
2410
}
2411
2411
2412
- impl WalkItemKind for AssocItemKind {
2413
- fn walk ( item : & mut Item < Self > , visitor : & mut impl MutVisitor ) {
2414
- let Item { attrs, id, span, vis, ident, kind, tokens } = item;
2415
- visitor. visit_id ( id) ;
2416
- visit_attrs ( visitor, attrs) ;
2417
- visitor. visit_vis ( vis) ;
2418
- visitor. visit_ident ( ident) ;
2419
- match kind {
2420
- AssocItemKind :: Const ( item) => {
2421
- visit_const_item ( item, visitor) ;
2422
- }
2423
- AssocItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
2424
- visit_defaultness ( visitor, defaultness) ;
2425
- visitor. visit_fn ( FnKind :: Fn ( sig, generics, body) , * span, * id) ;
2426
- }
2427
- AssocItemKind :: Type ( box TyAlias {
2428
- defaultness,
2429
- generics,
2430
- where_clauses,
2431
- bounds,
2432
- ty,
2433
- } ) => {
2434
- visit_defaultness ( visitor, defaultness) ;
2435
- visitor. visit_generics ( generics) ;
2436
- visit_bounds ( visitor, bounds, BoundKind :: Bound ) ;
2437
- visit_opt ( ty, |ty| visitor. visit_ty ( ty) ) ;
2438
- walk_ty_alias_where_clauses ( visitor, where_clauses) ;
2439
- }
2440
- AssocItemKind :: MacCall ( mac) => visitor. visit_mac_call ( mac) ,
2441
- AssocItemKind :: Delegation ( box Delegation {
2442
- id,
2443
- qself,
2444
- path,
2445
- rename,
2446
- body,
2447
- from_glob : _,
2448
- } ) => {
2449
- visitor. visit_id ( id) ;
2450
- visitor. visit_qself ( qself) ;
2451
- visitor. visit_path ( path, * id) ;
2452
- if let Some ( rename) = rename {
2453
- visitor. visit_ident ( rename) ;
2454
- }
2455
- if let Some ( body) = body {
2456
- visitor. visit_block ( body) ;
2457
- }
2458
- }
2459
- AssocItemKind :: DelegationMac ( box DelegationMac {
2460
- qself,
2461
- prefix,
2462
- suffixes,
2463
- body,
2464
- } ) => {
2465
- visitor. visit_qself ( qself) ;
2466
- visitor. visit_path ( prefix, * id) ;
2467
- if let Some ( suffixes) = suffixes {
2468
- for ( ident, rename) in suffixes {
2469
- visitor. visit_ident ( ident) ;
2470
- if let Some ( rename) = rename {
2471
- visitor. visit_ident ( rename) ;
2472
- }
2473
- }
2474
- }
2475
- if let Some ( body) = body {
2476
- visitor. visit_block ( body) ;
2477
- }
2478
- }
2479
- }
2480
- visit_lazy_tts ( visitor, tokens) ;
2481
- visitor. visit_span ( span) ;
2482
- }
2483
- }
2484
-
2485
2412
fn visit_const_item < T : MutVisitor > (
2486
2413
ConstItem { defaultness, generics, ty, expr } : & mut ConstItem ,
2487
2414
visitor : & mut T ,
@@ -2511,6 +2438,87 @@ pub mod mut_visit {
2511
2438
smallvec ! [ item]
2512
2439
}
2513
2440
2441
+ pub fn walk_assoc_item ( visitor : & mut impl MutVisitor , item : & mut Item < AssocItemKind > , _ctxt : AssocCtxt ) {
2442
+ let Item { attrs, id, span, vis, ident, kind, tokens } = item;
2443
+ visitor. visit_id ( id) ;
2444
+ visit_attrs ( visitor, attrs) ;
2445
+ visitor. visit_vis ( vis) ;
2446
+ visitor. visit_ident ( ident) ;
2447
+ match kind {
2448
+ AssocItemKind :: Const ( item) => {
2449
+ visit_const_item ( item, visitor) ;
2450
+ }
2451
+ AssocItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
2452
+ visit_defaultness ( visitor, defaultness) ;
2453
+ visitor. visit_fn ( FnKind :: Fn ( sig, generics, body) , * span, * id) ;
2454
+ }
2455
+ AssocItemKind :: Type ( box TyAlias {
2456
+ defaultness,
2457
+ generics,
2458
+ where_clauses,
2459
+ bounds,
2460
+ ty,
2461
+ } ) => {
2462
+ visit_defaultness ( visitor, defaultness) ;
2463
+ visitor. visit_generics ( generics) ;
2464
+ visit_bounds ( visitor, bounds, BoundKind :: Bound ) ;
2465
+ visit_opt ( ty, |ty| visitor. visit_ty ( ty) ) ;
2466
+ walk_ty_alias_where_clauses ( visitor, where_clauses) ;
2467
+ }
2468
+ AssocItemKind :: MacCall ( mac) => visitor. visit_mac_call ( mac) ,
2469
+ AssocItemKind :: Delegation ( box Delegation {
2470
+ id,
2471
+ qself,
2472
+ path,
2473
+ rename,
2474
+ body,
2475
+ from_glob : _,
2476
+ } ) => {
2477
+ visitor. visit_id ( id) ;
2478
+ visitor. visit_qself ( qself) ;
2479
+ visitor. visit_path ( path, * id) ;
2480
+ if let Some ( rename) = rename {
2481
+ visitor. visit_ident ( rename) ;
2482
+ }
2483
+ if let Some ( body) = body {
2484
+ visitor. visit_block ( body) ;
2485
+ }
2486
+ }
2487
+ AssocItemKind :: DelegationMac ( box DelegationMac {
2488
+ qself,
2489
+ prefix,
2490
+ suffixes,
2491
+ body,
2492
+ } ) => {
2493
+ visitor. visit_qself ( qself) ;
2494
+ visitor. visit_path ( prefix, * id) ;
2495
+ if let Some ( suffixes) = suffixes {
2496
+ for ( ident, rename) in suffixes {
2497
+ visitor. visit_ident ( ident) ;
2498
+ if let Some ( rename) = rename {
2499
+ visitor. visit_ident ( rename) ;
2500
+ }
2501
+ }
2502
+ }
2503
+ if let Some ( body) = body {
2504
+ visitor. visit_block ( body) ;
2505
+ }
2506
+ }
2507
+ }
2508
+ visit_lazy_tts ( visitor, tokens) ;
2509
+ visitor. visit_span ( span) ;
2510
+ }
2511
+
2512
+ pub fn walk_flat_map_assoc_item (
2513
+ visitor : & mut impl MutVisitor ,
2514
+ mut item : P < Item < AssocItemKind > > ,
2515
+ ctxt : AssocCtxt
2516
+ ) -> SmallVec < [ P < Item < AssocItemKind > > ; 1 ] > {
2517
+ walk_assoc_item ( visitor, item. deref_mut ( ) , ctxt) ;
2518
+ smallvec ! [ item]
2519
+ }
2520
+
2521
+
2514
2522
impl WalkItemKind for ForeignItemKind {
2515
2523
fn walk ( item : & mut Item < Self > , visitor : & mut impl MutVisitor ) {
2516
2524
let Item { attrs, id, span, vis, ident, kind, tokens } = item;
0 commit comments