@@ -356,7 +356,6 @@ macro_rules! make_ast_visitor {
356356 make_visit!{ P !( Pat ) ; visit_pat, walk_pat}
357357 make_visit!{ P !( Ty ) ; visit_ty, walk_ty}
358358
359-
360359 fn visit_variant_discr( & mut self , discr: ref_t!( AnonConst ) ) -> result!( ) {
361360 self . visit_anon_const( discr)
362361 }
@@ -1042,6 +1041,73 @@ macro_rules! make_ast_visitor {
10421041 try_v!( visit_span!( vis, span) ) ;
10431042 return_result!( V )
10441043 }
1044+
1045+ pub fn walk_ty<$( $lt, ) ? V : $trait$( <$lt>) ?>(
1046+ vis: & mut V ,
1047+ ty: ref_t!( Ty )
1048+ ) -> result!( V ) {
1049+ let Ty { id, kind, span, tokens } = ty;
1050+ try_v!( visit_id!( vis, id) ) ;
1051+ match kind {
1052+ TyKind :: Err ( _guar) => { }
1053+ TyKind :: Infer
1054+ | TyKind :: ImplicitSelf
1055+ | TyKind :: Dummy
1056+ | TyKind :: Never
1057+ | TyKind :: CVarArgs => { }
1058+ TyKind :: Slice ( ty) => {
1059+ try_v!( vis. visit_ty( ty) ) ;
1060+ }
1061+ TyKind :: Ptr ( mt) => {
1062+ try_v!( vis. visit_mt( mt) ) ;
1063+ }
1064+ TyKind :: Ref ( lt, mt) => {
1065+ visit_o!( lt, |lt| vis. visit_lifetime( lt, LifetimeCtxt :: Ref ) ) ;
1066+ try_v!( vis. visit_mt( mt) ) ;
1067+ }
1068+ TyKind :: BareFn ( bft) => {
1069+ let BareFnTy { safety, ext: _, generic_params, decl, decl_span } = & $( $mut) ? * * bft;
1070+ try_v!( vis. visit_safety( safety) ) ;
1071+ visit_list!( vis, visit_generic_param, flat_map_generic_param, generic_params) ;
1072+ try_v!( vis. visit_fn_decl( decl) ) ;
1073+ try_v!( visit_span!( vis, decl_span) ) ;
1074+ }
1075+ TyKind :: Tup ( tys) => {
1076+ visit_list!( vis, visit_ty, tys) ;
1077+ }
1078+ TyKind :: Paren ( ty) => {
1079+ try_v!( vis. visit_ty( ty) )
1080+ }
1081+ TyKind :: Pat ( ty, pat) => {
1082+ try_v!( vis. visit_ty( ty) ) ;
1083+ try_v!( vis. visit_pat( pat) ) ;
1084+ }
1085+ TyKind :: Path ( qself, path) => {
1086+ try_v!( vis. visit_qself( qself) ) ;
1087+ try_v!( vis. visit_path( path, * id) ) ;
1088+ }
1089+ TyKind :: Array ( ty, length) => {
1090+ try_v!( vis. visit_ty( ty) ) ;
1091+ try_v!( vis. visit_anon_const( length) ) ;
1092+ }
1093+ TyKind :: Typeof ( expr) => {
1094+ try_v!( vis. visit_anon_const( expr) ) ;
1095+ } ,
1096+ TyKind :: TraitObject ( bounds, _syntax) => {
1097+ visit_list!( vis, visit_param_bound, bounds; BoundKind :: TraitObject ) ;
1098+ }
1099+ TyKind :: ImplTrait ( id, bounds) => {
1100+ try_v!( visit_id!( vis, id) ) ;
1101+ visit_list!( vis, visit_param_bound, bounds; BoundKind :: Impl ) ;
1102+ }
1103+ TyKind :: MacCall ( mac) => {
1104+ try_v!( vis. visit_mac_call( mac) )
1105+ }
1106+ }
1107+ visit_lazy_tts!( vis, tokens) ;
1108+ try_v!( visit_span!( vis, span) ) ;
1109+ return_result!( V )
1110+ }
10451111 }
10461112}
10471113
@@ -1292,52 +1358,6 @@ pub mod visit {
12921358 walk_assoc_item ( visitor, item, AssocCtxt :: Trait /*ignored*/ )
12931359 }
12941360
1295- pub fn walk_ty < ' a , V : Visitor < ' a > > ( visitor : & mut V , typ : & ' a Ty ) -> V :: Result {
1296- let Ty { id, kind, span : _, tokens : _ } = typ;
1297- match kind {
1298- TyKind :: Slice ( ty) | TyKind :: Paren ( ty) => try_visit ! ( visitor. visit_ty( ty) ) ,
1299- TyKind :: Ptr ( mt) => try_visit ! ( visitor. visit_mt( mt) ) ,
1300- TyKind :: Ref ( opt_lifetime, mt) => {
1301- visit_opt ! ( visitor, visit_lifetime, opt_lifetime, LifetimeCtxt :: Ref ) ;
1302- try_visit ! ( visitor. visit_mt( mt) ) ;
1303- }
1304- TyKind :: Tup ( tuple_element_types) => {
1305- walk_list ! ( visitor, visit_ty, tuple_element_types) ;
1306- }
1307- TyKind :: BareFn ( function_declaration) => {
1308- let BareFnTy { safety, ext : _, generic_params, decl, decl_span : _ } =
1309- & * * function_declaration;
1310- try_visit ! ( visitor. visit_safety( safety) ) ;
1311- walk_list ! ( visitor, visit_generic_param, generic_params) ;
1312- try_visit ! ( visitor. visit_fn_decl( decl) ) ;
1313- }
1314- TyKind :: Path ( maybe_qself, path) => {
1315- try_visit ! ( visitor. visit_qself( maybe_qself) ) ;
1316- try_visit ! ( visitor. visit_path( path, * id) ) ;
1317- }
1318- TyKind :: Pat ( ty, pat) => {
1319- try_visit ! ( visitor. visit_ty( ty) ) ;
1320- try_visit ! ( visitor. visit_pat( pat) ) ;
1321- }
1322- TyKind :: Array ( ty, length) => {
1323- try_visit ! ( visitor. visit_ty( ty) ) ;
1324- try_visit ! ( visitor. visit_anon_const( length) ) ;
1325- }
1326- TyKind :: TraitObject ( bounds, _syntax) => {
1327- walk_list ! ( visitor, visit_param_bound, bounds, BoundKind :: TraitObject ) ;
1328- }
1329- TyKind :: ImplTrait ( _id, bounds) => {
1330- walk_list ! ( visitor, visit_param_bound, bounds, BoundKind :: Impl ) ;
1331- }
1332- TyKind :: Typeof ( expression) => try_visit ! ( visitor. visit_anon_const( expression) ) ,
1333- TyKind :: Infer | TyKind :: ImplicitSelf | TyKind :: Dummy => { }
1334- TyKind :: Err ( _guar) => { }
1335- TyKind :: MacCall ( mac) => try_visit ! ( visitor. visit_mac_call( mac) ) ,
1336- TyKind :: Never | TyKind :: CVarArgs => { }
1337- }
1338- V :: Result :: output ( )
1339- }
1340-
13411361 pub fn walk_assoc_item_constraint < ' a , V : Visitor < ' a > > (
13421362 visitor : & mut V ,
13431363 constraint : & ' a AssocItemConstraint ,
@@ -1834,57 +1854,6 @@ pub mod mut_visit {
18341854 vis. visit_span ( span) ;
18351855 }
18361856
1837- pub fn walk_ty < T : MutVisitor > ( vis : & mut T , ty : & mut P < Ty > ) {
1838- let Ty { id, kind, span, tokens } = ty. deref_mut ( ) ;
1839- vis. visit_id ( id) ;
1840- match kind {
1841- TyKind :: Err ( _guar) => { }
1842- TyKind :: Infer
1843- | TyKind :: ImplicitSelf
1844- | TyKind :: Dummy
1845- | TyKind :: Never
1846- | TyKind :: CVarArgs => { }
1847- TyKind :: Slice ( ty) => vis. visit_ty ( ty) ,
1848- TyKind :: Ptr ( mt) => vis. visit_mt ( mt) ,
1849- TyKind :: Ref ( lt, mt) => {
1850- visit_opt ( lt, |lt| vis. visit_lifetime ( lt, LifetimeCtxt :: Ref ) ) ;
1851- vis. visit_mt ( mt) ;
1852- }
1853- TyKind :: BareFn ( bft) => {
1854- let BareFnTy { safety, ext : _, generic_params, decl, decl_span } = bft. deref_mut ( ) ;
1855- vis. visit_safety ( safety) ;
1856- generic_params. flat_map_in_place ( |param| vis. flat_map_generic_param ( param) ) ;
1857- vis. visit_fn_decl ( decl) ;
1858- vis. visit_span ( decl_span) ;
1859- }
1860- TyKind :: Tup ( tys) => visit_thin_vec ( tys, |ty| vis. visit_ty ( ty) ) ,
1861- TyKind :: Paren ( ty) => vis. visit_ty ( ty) ,
1862- TyKind :: Pat ( ty, pat) => {
1863- vis. visit_ty ( ty) ;
1864- vis. visit_pat ( pat) ;
1865- }
1866- TyKind :: Path ( qself, path) => {
1867- vis. visit_qself ( qself) ;
1868- vis. visit_path ( path, * id) ;
1869- }
1870- TyKind :: Array ( ty, length) => {
1871- vis. visit_ty ( ty) ;
1872- vis. visit_anon_const ( length) ;
1873- }
1874- TyKind :: Typeof ( expr) => vis. visit_anon_const ( expr) ,
1875- TyKind :: TraitObject ( bounds, _syntax) => {
1876- visit_vec ( bounds, |bound| vis. visit_param_bound ( bound, BoundKind :: TraitObject ) )
1877- }
1878- TyKind :: ImplTrait ( id, bounds) => {
1879- vis. visit_id ( id) ;
1880- visit_vec ( bounds, |bound| vis. visit_param_bound ( bound, BoundKind :: Impl ) ) ;
1881- }
1882- TyKind :: MacCall ( mac) => vis. visit_mac_call ( mac) ,
1883- }
1884- visit_lazy_tts ( vis, tokens) ;
1885- vis. visit_span ( span) ;
1886- }
1887-
18881857 fn walk_foreign_mod < T : MutVisitor > ( vis : & mut T , foreign_mod : & mut ForeignMod ) {
18891858 let ForeignMod { safety, abi : _, items } = foreign_mod;
18901859 vis. visit_safety ( safety) ;
0 commit comments