@@ -1283,6 +1283,81 @@ macro_rules! make_ast_visitor {
1283
1283
return_result!( V )
1284
1284
}
1285
1285
1286
+ pub fn walk_assoc_item<$( $lt, ) ? V : $trait$( <$lt>) ?>(
1287
+ visitor: & mut V ,
1288
+ item: ref_t!( Item <AssocItemKind >) ,
1289
+ ctxt: AssocCtxt
1290
+ ) -> result!( V ) {
1291
+ let Item { attrs, id, span, vis, ident, kind, tokens } = item;
1292
+ try_v!( visit_id!( visitor, id) ) ;
1293
+ visit_list!( visitor, visit_attribute, flat_map_attribute, attrs) ;
1294
+ try_v!( visitor. visit_vis( vis) ) ;
1295
+ try_v!( visit_ident!( visitor, ident) ) ;
1296
+ match kind {
1297
+ AssocItemKind :: Const ( box ConstItem { defaultness, generics, ty, expr } ) => {
1298
+ visit_defaultness!( visitor, defaultness) ;
1299
+ try_v!( visitor. visit_generics( generics) ) ;
1300
+ try_v!( visitor. visit_ty( ty) ) ;
1301
+ visit_o!( expr, |expr| visitor. visit_expr( expr) ) ;
1302
+ }
1303
+ AssocItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
1304
+ visit_defaultness!( visitor, defaultness) ;
1305
+ let kind =
1306
+ FnKind :: Fn ( FnCtxt :: Assoc ( ctxt) , * ident, sig, vis, generics, as_deref!( body) ) ;
1307
+ try_v!( visitor. visit_fn( kind, * span, * id) ) ;
1308
+ }
1309
+ AssocItemKind :: Type ( box TyAlias {
1310
+ defaultness,
1311
+ generics,
1312
+ where_clauses,
1313
+ bounds,
1314
+ ty,
1315
+ } ) => {
1316
+ visit_defaultness!( visitor, defaultness) ;
1317
+ try_v!( visitor. visit_generics( generics) ) ;
1318
+ visit_list!( visitor, visit_param_bound, bounds; BoundKind :: Bound ) ;
1319
+ visit_o!( ty, |ty| visitor. visit_ty( ty) ) ;
1320
+ walk_ty_alias_where_clauses!( visitor, where_clauses) ;
1321
+ }
1322
+ AssocItemKind :: MacCall ( mac) => {
1323
+ try_v!( visitor. visit_mac_call( mac) ) ;
1324
+ }
1325
+ AssocItemKind :: Delegation ( box Delegation {
1326
+ id,
1327
+ qself,
1328
+ path,
1329
+ rename,
1330
+ body,
1331
+ from_glob: _,
1332
+ } ) => {
1333
+ try_v!( visit_id!( visitor, id) ) ;
1334
+ try_v!( visitor. visit_qself( qself) ) ;
1335
+ try_v!( visitor. visit_path( path, * id) ) ;
1336
+ visit_o!( rename, |rename: & $( $mut) ? Ident | visit_ident!( visitor, rename) ) ;
1337
+ visit_o!( body, |body| visitor. visit_block( body) ) ;
1338
+ }
1339
+ AssocItemKind :: DelegationMac ( box DelegationMac {
1340
+ qself,
1341
+ prefix,
1342
+ suffixes,
1343
+ body,
1344
+ } ) => {
1345
+ try_v!( visitor. visit_qself( qself) ) ;
1346
+ try_v!( visitor. visit_path( prefix, * id) ) ;
1347
+ if let Some ( suffixes) = suffixes {
1348
+ for ( ident, rename) in suffixes {
1349
+ try_v!( visit_ident!( visitor, ident) ) ;
1350
+ visit_o!( rename, |rename: & $( $mut) ? Ident | visit_ident!( visitor, rename) ) ;
1351
+ }
1352
+ }
1353
+ visit_o!( body, |body| visitor. visit_block( body) ) ;
1354
+ }
1355
+ }
1356
+ visit_lazy_tts!( visitor, tokens) ;
1357
+ try_v!( visit_span!( visitor, span) ) ;
1358
+ return_result!( V )
1359
+ }
1360
+
1286
1361
derive_copy_clone!{
1287
1362
#[ derive( Debug ) ]
1288
1363
pub enum FnKind <' a> {
@@ -1618,75 +1693,6 @@ pub mod visit {
1618
1693
V :: Result :: output ( )
1619
1694
}
1620
1695
1621
- pub fn walk_assoc_item < ' a , V : Visitor < ' a > > (
1622
- visitor : & mut V ,
1623
- item : & ' a Item < AssocItemKind > ,
1624
- ctxt : AssocCtxt ,
1625
- ) -> V :: Result {
1626
- let & Item { id, span, ident, ref vis, ref attrs, ref kind, tokens : _ } = item;
1627
- walk_list ! ( visitor, visit_attribute, attrs) ;
1628
- try_visit ! ( visitor. visit_vis( vis) ) ;
1629
- try_visit ! ( visitor. visit_ident( ident) ) ;
1630
- match kind {
1631
- AssocItemKind :: Const ( box ConstItem { defaultness : _, generics, ty, expr } ) => {
1632
- try_visit ! ( visitor. visit_generics( generics) ) ;
1633
- try_visit ! ( visitor. visit_ty( ty) ) ;
1634
- visit_opt ! ( visitor, visit_expr, expr) ;
1635
- }
1636
- AssocItemKind :: Fn ( box Fn { defaultness : _, generics, sig, body } ) => {
1637
- let kind =
1638
- FnKind :: Fn ( FnCtxt :: Assoc ( ctxt) , ident, sig, vis, generics, body. as_deref ( ) ) ;
1639
- try_visit ! ( visitor. visit_fn( kind, span, id) ) ;
1640
- }
1641
- AssocItemKind :: Type ( box TyAlias {
1642
- generics,
1643
- bounds,
1644
- ty,
1645
- defaultness : _,
1646
- where_clauses : _,
1647
- } ) => {
1648
- try_visit ! ( visitor. visit_generics( generics) ) ;
1649
- walk_list ! ( visitor, visit_param_bound, bounds, BoundKind :: Bound ) ;
1650
- visit_opt ! ( visitor, visit_ty, ty) ;
1651
- }
1652
- AssocItemKind :: MacCall ( mac) => {
1653
- try_visit ! ( visitor. visit_mac_call( mac) ) ;
1654
- }
1655
- AssocItemKind :: Delegation ( box Delegation {
1656
- id,
1657
- qself,
1658
- path,
1659
- rename,
1660
- body,
1661
- from_glob : _,
1662
- } ) => {
1663
- try_visit ! ( visitor. visit_qself( qself) ) ;
1664
- try_visit ! ( visitor. visit_path( path, * id) ) ;
1665
- visit_opt ! ( visitor, visit_ident, * rename) ;
1666
- visit_opt ! ( visitor, visit_block, body) ;
1667
- }
1668
- AssocItemKind :: DelegationMac ( box DelegationMac {
1669
- qself,
1670
- prefix,
1671
- suffixes,
1672
- body,
1673
- } ) => {
1674
- try_visit ! ( visitor. visit_qself( qself) ) ;
1675
- try_visit ! ( visitor. visit_path( prefix, id) ) ;
1676
- if let Some ( suffixes) = suffixes {
1677
- for ( ident, rename) in suffixes {
1678
- visitor. visit_ident ( * ident) ;
1679
- if let Some ( rename) = rename {
1680
- visitor. visit_ident ( * rename) ;
1681
- }
1682
- }
1683
- }
1684
- visit_opt ! ( visitor, visit_block, body) ;
1685
- }
1686
- }
1687
- V :: Result :: output ( )
1688
- }
1689
-
1690
1696
// FIXME: Remove this function. Use walk_variant_data
1691
1697
pub fn walk_struct_def < ' a , V : Visitor < ' a > > (
1692
1698
visitor : & mut V ,
@@ -2009,11 +2015,6 @@ pub mod mut_visit {
2009
2015
exprs. flat_map_in_place ( |expr| vis. filter_map_expr ( expr) )
2010
2016
}
2011
2017
2012
- // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
2013
- fn visit_bounds < T : MutVisitor > ( vis : & mut T , bounds : & mut GenericBounds , ctxt : BoundKind ) {
2014
- visit_vec ( bounds, |bound| vis. visit_param_bound ( bound, ctxt) ) ;
2015
- }
2016
-
2017
2018
// No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
2018
2019
fn visit_attr_args < T : MutVisitor > ( vis : & mut T , args : & mut AttrArgs ) {
2019
2020
match args {
@@ -2292,16 +2293,6 @@ pub mod mut_visit {
2292
2293
vis. visit_span ( span_after) ;
2293
2294
}
2294
2295
2295
- fn visit_const_item < T : MutVisitor > (
2296
- ConstItem { defaultness, generics, ty, expr } : & mut ConstItem ,
2297
- visitor : & mut T ,
2298
- ) {
2299
- visit_defaultness ( visitor, defaultness) ;
2300
- visitor. visit_generics ( generics) ;
2301
- visitor. visit_ty ( ty) ;
2302
- visit_opt ( expr, |expr| visitor. visit_expr ( expr) ) ;
2303
- }
2304
-
2305
2296
fn walk_fn_header < T : MutVisitor > ( vis : & mut T , header : & mut FnHeader ) {
2306
2297
let FnHeader { safety, coroutine_kind, constness, ext : _ } = header;
2307
2298
visit_constness ( vis, constness) ;
@@ -2325,79 +2316,6 @@ pub mod mut_visit {
2325
2316
smallvec ! [ item]
2326
2317
}
2327
2318
2328
- pub fn walk_assoc_item ( visitor : & mut impl MutVisitor , item : & mut Item < AssocItemKind > , ctxt : AssocCtxt ) {
2329
- let Item { attrs, id, span, vis, ident, kind, tokens } = item;
2330
- visitor. visit_id ( id) ;
2331
- visit_attrs ( visitor, attrs) ;
2332
- visitor. visit_vis ( vis) ;
2333
- visitor. visit_ident ( ident) ;
2334
- match kind {
2335
- AssocItemKind :: Const ( item) => {
2336
- visit_const_item ( item, visitor) ;
2337
- }
2338
- AssocItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
2339
- visit_defaultness ( visitor, defaultness) ;
2340
- let kind =
2341
- FnKind :: Fn ( FnCtxt :: Assoc ( ctxt) , * ident, sig, vis, generics, body. as_deref_mut ( ) ) ;
2342
- visitor. visit_fn ( kind, * span, * id) ;
2343
- }
2344
- AssocItemKind :: Type ( box TyAlias {
2345
- defaultness,
2346
- generics,
2347
- where_clauses,
2348
- bounds,
2349
- ty,
2350
- } ) => {
2351
- visit_defaultness ( visitor, defaultness) ;
2352
- visitor. visit_generics ( generics) ;
2353
- visit_bounds ( visitor, bounds, BoundKind :: Bound ) ;
2354
- visit_opt ( ty, |ty| visitor. visit_ty ( ty) ) ;
2355
- walk_ty_alias_where_clauses ( visitor, where_clauses) ;
2356
- }
2357
- AssocItemKind :: MacCall ( mac) => visitor. visit_mac_call ( mac) ,
2358
- AssocItemKind :: Delegation ( box Delegation {
2359
- id,
2360
- qself,
2361
- path,
2362
- rename,
2363
- body,
2364
- from_glob : _,
2365
- } ) => {
2366
- visitor. visit_id ( id) ;
2367
- visitor. visit_qself ( qself) ;
2368
- visitor. visit_path ( path, * id) ;
2369
- if let Some ( rename) = rename {
2370
- visitor. visit_ident ( rename) ;
2371
- }
2372
- if let Some ( body) = body {
2373
- visitor. visit_block ( body) ;
2374
- }
2375
- }
2376
- AssocItemKind :: DelegationMac ( box DelegationMac {
2377
- qself,
2378
- prefix,
2379
- suffixes,
2380
- body,
2381
- } ) => {
2382
- visitor. visit_qself ( qself) ;
2383
- visitor. visit_path ( prefix, * id) ;
2384
- if let Some ( suffixes) = suffixes {
2385
- for ( ident, rename) in suffixes {
2386
- visitor. visit_ident ( ident) ;
2387
- if let Some ( rename) = rename {
2388
- visitor. visit_ident ( rename) ;
2389
- }
2390
- }
2391
- }
2392
- if let Some ( body) = body {
2393
- visitor. visit_block ( body) ;
2394
- }
2395
- }
2396
- }
2397
- visit_lazy_tts ( visitor, tokens) ;
2398
- visitor. visit_span ( span) ;
2399
- }
2400
-
2401
2319
pub fn walk_flat_map_assoc_item (
2402
2320
visitor : & mut impl MutVisitor ,
2403
2321
mut item : P < Item < AssocItemKind > > ,
0 commit comments