@@ -362,7 +362,6 @@ macro_rules! make_ast_visitor {
362362 make_visit!{ P !( Pat ) ; visit_pat, walk_pat}
363363 make_visit!{ P !( Ty ) ; visit_ty, walk_ty}
364364
365-
366365 fn visit_variant_discr( & mut self , discr: ref_t!( AnonConst ) ) -> result!( ) {
367366 self . visit_anon_const( discr)
368367 }
@@ -1048,6 +1047,73 @@ macro_rules! make_ast_visitor {
10481047 try_v!( visit_span!( vis, span) ) ;
10491048 return_result!( V )
10501049 }
1050+
1051+ pub fn walk_ty<$( $lt, ) ? V : $trait$( <$lt>) ?>(
1052+ vis: & mut V ,
1053+ ty: ref_t!( Ty )
1054+ ) -> result!( V ) {
1055+ let Ty { id, kind, span, tokens } = ty;
1056+ try_v!( visit_id!( vis, id) ) ;
1057+ match kind {
1058+ TyKind :: Err ( _guar) => { }
1059+ TyKind :: Infer
1060+ | TyKind :: ImplicitSelf
1061+ | TyKind :: Dummy
1062+ | TyKind :: Never
1063+ | TyKind :: CVarArgs => { }
1064+ TyKind :: Slice ( ty) => {
1065+ try_v!( vis. visit_ty( ty) ) ;
1066+ }
1067+ TyKind :: Ptr ( mt) => {
1068+ try_v!( vis. visit_mt( mt) ) ;
1069+ }
1070+ TyKind :: Ref ( lt, mt) => {
1071+ visit_o!( lt, |lt| vis. visit_lifetime( lt, LifetimeCtxt :: Ref ) ) ;
1072+ try_v!( vis. visit_mt( mt) ) ;
1073+ }
1074+ TyKind :: BareFn ( bft) => {
1075+ let BareFnTy { safety, ext: _, generic_params, decl, decl_span } = & $( $mut) ? * * bft;
1076+ try_v!( vis. visit_safety( safety) ) ;
1077+ visit_list!( vis, visit_generic_param, flat_map_generic_param, generic_params) ;
1078+ try_v!( vis. visit_fn_decl( decl) ) ;
1079+ try_v!( visit_span!( vis, decl_span) ) ;
1080+ }
1081+ TyKind :: Tup ( tys) => {
1082+ visit_list!( vis, visit_ty, tys) ;
1083+ }
1084+ TyKind :: Paren ( ty) => {
1085+ try_v!( vis. visit_ty( ty) )
1086+ }
1087+ TyKind :: Pat ( ty, pat) => {
1088+ try_v!( vis. visit_ty( ty) ) ;
1089+ try_v!( vis. visit_pat( pat) ) ;
1090+ }
1091+ TyKind :: Path ( qself, path) => {
1092+ try_v!( vis. visit_qself( qself) ) ;
1093+ try_v!( vis. visit_path( path, * id) ) ;
1094+ }
1095+ TyKind :: Array ( ty, length) => {
1096+ try_v!( vis. visit_ty( ty) ) ;
1097+ try_v!( vis. visit_anon_const( length) ) ;
1098+ }
1099+ TyKind :: Typeof ( expr) => {
1100+ try_v!( vis. visit_anon_const( expr) ) ;
1101+ } ,
1102+ TyKind :: TraitObject ( bounds, _syntax) => {
1103+ visit_list!( vis, visit_param_bound, bounds; BoundKind :: TraitObject ) ;
1104+ }
1105+ TyKind :: ImplTrait ( id, bounds) => {
1106+ try_v!( visit_id!( vis, id) ) ;
1107+ visit_list!( vis, visit_param_bound, bounds; BoundKind :: Impl ) ;
1108+ }
1109+ TyKind :: MacCall ( mac) => {
1110+ try_v!( vis. visit_mac_call( mac) )
1111+ }
1112+ }
1113+ visit_lazy_tts!( vis, tokens) ;
1114+ try_v!( visit_span!( vis, span) ) ;
1115+ return_result!( V )
1116+ }
10511117 }
10521118}
10531119
@@ -1298,52 +1364,6 @@ pub mod visit {
12981364 walk_assoc_item ( visitor, item, AssocCtxt :: Trait /*ignored*/ )
12991365 }
13001366
1301- pub fn walk_ty < ' a , V : Visitor < ' a > > ( visitor : & mut V , typ : & ' a Ty ) -> V :: Result {
1302- let Ty { id, kind, span : _, tokens : _ } = typ;
1303- match kind {
1304- TyKind :: Slice ( ty) | TyKind :: Paren ( ty) => try_visit ! ( visitor. visit_ty( ty) ) ,
1305- TyKind :: Ptr ( mt) => try_visit ! ( visitor. visit_mt( mt) ) ,
1306- TyKind :: Ref ( opt_lifetime, mt) => {
1307- visit_opt ! ( visitor, visit_lifetime, opt_lifetime, LifetimeCtxt :: Ref ) ;
1308- try_visit ! ( visitor. visit_mt( mt) ) ;
1309- }
1310- TyKind :: Tup ( tuple_element_types) => {
1311- walk_list ! ( visitor, visit_ty, tuple_element_types) ;
1312- }
1313- TyKind :: BareFn ( function_declaration) => {
1314- let BareFnTy { safety, ext : _, generic_params, decl, decl_span : _ } =
1315- & * * function_declaration;
1316- try_visit ! ( visitor. visit_safety( safety) ) ;
1317- walk_list ! ( visitor, visit_generic_param, generic_params) ;
1318- try_visit ! ( visitor. visit_fn_decl( decl) ) ;
1319- }
1320- TyKind :: Path ( maybe_qself, path) => {
1321- try_visit ! ( visitor. visit_qself( maybe_qself) ) ;
1322- try_visit ! ( visitor. visit_path( path, * id) ) ;
1323- }
1324- TyKind :: Pat ( ty, pat) => {
1325- try_visit ! ( visitor. visit_ty( ty) ) ;
1326- try_visit ! ( visitor. visit_pat( pat) ) ;
1327- }
1328- TyKind :: Array ( ty, length) => {
1329- try_visit ! ( visitor. visit_ty( ty) ) ;
1330- try_visit ! ( visitor. visit_anon_const( length) ) ;
1331- }
1332- TyKind :: TraitObject ( bounds, _syntax) => {
1333- walk_list ! ( visitor, visit_param_bound, bounds, BoundKind :: TraitObject ) ;
1334- }
1335- TyKind :: ImplTrait ( _id, bounds) => {
1336- walk_list ! ( visitor, visit_param_bound, bounds, BoundKind :: Impl ) ;
1337- }
1338- TyKind :: Typeof ( expression) => try_visit ! ( visitor. visit_anon_const( expression) ) ,
1339- TyKind :: Infer | TyKind :: ImplicitSelf | TyKind :: Dummy => { }
1340- TyKind :: Err ( _guar) => { }
1341- TyKind :: MacCall ( mac) => try_visit ! ( visitor. visit_mac_call( mac) ) ,
1342- TyKind :: Never | TyKind :: CVarArgs => { }
1343- }
1344- V :: Result :: output ( )
1345- }
1346-
13471367 pub fn walk_assoc_item_constraint < ' a , V : Visitor < ' a > > (
13481368 visitor : & mut V ,
13491369 constraint : & ' a AssocItemConstraint ,
@@ -1840,57 +1860,6 @@ pub mod mut_visit {
18401860 vis. visit_span ( span) ;
18411861 }
18421862
1843- pub fn walk_ty < T : MutVisitor > ( vis : & mut T , ty : & mut P < Ty > ) {
1844- let Ty { id, kind, span, tokens } = ty. deref_mut ( ) ;
1845- vis. visit_id ( id) ;
1846- match kind {
1847- TyKind :: Err ( _guar) => { }
1848- TyKind :: Infer
1849- | TyKind :: ImplicitSelf
1850- | TyKind :: Dummy
1851- | TyKind :: Never
1852- | TyKind :: CVarArgs => { }
1853- TyKind :: Slice ( ty) => vis. visit_ty ( ty) ,
1854- TyKind :: Ptr ( mt) => vis. visit_mt ( mt) ,
1855- TyKind :: Ref ( lt, mt) => {
1856- visit_opt ( lt, |lt| vis. visit_lifetime ( lt, LifetimeCtxt :: Ref ) ) ;
1857- vis. visit_mt ( mt) ;
1858- }
1859- TyKind :: BareFn ( bft) => {
1860- let BareFnTy { safety, ext : _, generic_params, decl, decl_span } = bft. deref_mut ( ) ;
1861- vis. visit_safety ( safety) ;
1862- generic_params. flat_map_in_place ( |param| vis. flat_map_generic_param ( param) ) ;
1863- vis. visit_fn_decl ( decl) ;
1864- vis. visit_span ( decl_span) ;
1865- }
1866- TyKind :: Tup ( tys) => visit_thin_vec ( tys, |ty| vis. visit_ty ( ty) ) ,
1867- TyKind :: Paren ( ty) => vis. visit_ty ( ty) ,
1868- TyKind :: Pat ( ty, pat) => {
1869- vis. visit_ty ( ty) ;
1870- vis. visit_pat ( pat) ;
1871- }
1872- TyKind :: Path ( qself, path) => {
1873- vis. visit_qself ( qself) ;
1874- vis. visit_path ( path, * id) ;
1875- }
1876- TyKind :: Array ( ty, length) => {
1877- vis. visit_ty ( ty) ;
1878- vis. visit_anon_const ( length) ;
1879- }
1880- TyKind :: Typeof ( expr) => vis. visit_anon_const ( expr) ,
1881- TyKind :: TraitObject ( bounds, _syntax) => {
1882- visit_vec ( bounds, |bound| vis. visit_param_bound ( bound, BoundKind :: TraitObject ) )
1883- }
1884- TyKind :: ImplTrait ( id, bounds) => {
1885- vis. visit_id ( id) ;
1886- visit_vec ( bounds, |bound| vis. visit_param_bound ( bound, BoundKind :: Impl ) ) ;
1887- }
1888- TyKind :: MacCall ( mac) => vis. visit_mac_call ( mac) ,
1889- }
1890- visit_lazy_tts ( vis, tokens) ;
1891- vis. visit_span ( span) ;
1892- }
1893-
18941863 fn walk_foreign_mod < T : MutVisitor > ( vis : & mut T , foreign_mod : & mut ForeignMod ) {
18951864 let ForeignMod { safety, abi : _, items } = foreign_mod;
18961865 vis. visit_safety ( safety) ;
0 commit comments