@@ -1291,6 +1291,81 @@ macro_rules! make_ast_visitor {
12911291 return_result!( V )
12921292 }
12931293
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+
12941369 derive_copy_clone!{
12951370 #[ derive( Debug ) ]
12961371 pub enum FnKind <' a> {
@@ -1616,75 +1691,6 @@ pub mod visit {
16161691
16171692 make_ast_visitor ! ( Visitor <' ast>) ;
16181693
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-
16881694 // FIXME: Remove this function. Use walk_variant_data
16891695 pub fn walk_struct_def < ' a , V : Visitor < ' a > > (
16901696 visitor : & mut V ,
@@ -2007,11 +2013,6 @@ pub mod mut_visit {
20072013 exprs. flat_map_in_place ( |expr| vis. filter_map_expr ( expr) )
20082014 }
20092015
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-
20152016 // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
20162017 fn visit_attr_args < T : MutVisitor > ( vis : & mut T , args : & mut AttrArgs ) {
20172018 match args {
@@ -2290,16 +2291,6 @@ pub mod mut_visit {
22902291 vis. visit_span ( span_after) ;
22912292 }
22922293
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-
23032294 fn walk_fn_header < T : MutVisitor > ( vis : & mut T , header : & mut FnHeader ) {
23042295 let FnHeader { safety, coroutine_kind, constness, ext : _ } = header;
23052296 visit_constness ( vis, constness) ;
@@ -2316,79 +2307,6 @@ pub mod mut_visit {
23162307 smallvec ! [ item]
23172308 }
23182309
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-
23922310 pub fn walk_flat_map_assoc_item (
23932311 visitor : & mut impl MutVisitor ,
23942312 mut item : P < Item < AssocItemKind > > ,
0 commit comments