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