@@ -1283,6 +1283,81 @@ macro_rules! make_ast_visitor {
12831283 return_result!( V )
12841284 }
12851285
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+
12861361 derive_copy_clone!{
12871362 #[ derive( Debug ) ]
12881363 pub enum FnKind <' a> {
@@ -1618,75 +1693,6 @@ pub mod visit {
16181693 V :: Result :: output ( )
16191694 }
16201695
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-
16901696 // FIXME: Remove this function. Use walk_variant_data
16911697 pub fn walk_struct_def < ' a , V : Visitor < ' a > > (
16921698 visitor : & mut V ,
@@ -2009,11 +2015,6 @@ pub mod mut_visit {
20092015 exprs. flat_map_in_place ( |expr| vis. filter_map_expr ( expr) )
20102016 }
20112017
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-
20172018 // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
20182019 fn visit_attr_args < T : MutVisitor > ( vis : & mut T , args : & mut AttrArgs ) {
20192020 match args {
@@ -2292,16 +2293,6 @@ pub mod mut_visit {
22922293 vis. visit_span ( span_after) ;
22932294 }
22942295
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-
23052296 fn walk_fn_header < T : MutVisitor > ( vis : & mut T , header : & mut FnHeader ) {
23062297 let FnHeader { safety, coroutine_kind, constness, ext : _ } = header;
23072298 visit_constness ( vis, constness) ;
@@ -2325,79 +2316,6 @@ pub mod mut_visit {
23252316 smallvec ! [ item]
23262317 }
23272318
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-
24012319 pub fn walk_flat_map_assoc_item (
24022320 visitor : & mut impl MutVisitor ,
24032321 mut item : P < Item < AssocItemKind > > ,
0 commit comments