@@ -356,7 +356,6 @@ macro_rules! make_ast_visitor {
356
356
make_visit!{ P !( Pat ) ; visit_pat, walk_pat}
357
357
make_visit!{ P !( Ty ) ; visit_ty, walk_ty}
358
358
359
-
360
359
fn visit_variant_discr( & mut self , discr: ref_t!( AnonConst ) ) -> result!( ) {
361
360
self . visit_anon_const( discr)
362
361
}
@@ -1042,6 +1041,73 @@ macro_rules! make_ast_visitor {
1042
1041
try_v!( visit_span!( vis, span) ) ;
1043
1042
return_result!( V )
1044
1043
}
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
+ }
1045
1111
}
1046
1112
}
1047
1113
@@ -1292,52 +1358,6 @@ pub mod visit {
1292
1358
walk_assoc_item ( visitor, item, AssocCtxt :: Trait /*ignored*/ )
1293
1359
}
1294
1360
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
-
1341
1361
pub fn walk_assoc_item_constraint < ' a , V : Visitor < ' a > > (
1342
1362
visitor : & mut V ,
1343
1363
constraint : & ' a AssocItemConstraint ,
@@ -1834,57 +1854,6 @@ pub mod mut_visit {
1834
1854
vis. visit_span ( span) ;
1835
1855
}
1836
1856
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
-
1888
1857
fn walk_foreign_mod < T : MutVisitor > ( vis : & mut T , foreign_mod : & mut ForeignMod ) {
1889
1858
let ForeignMod { safety, abi : _, items } = foreign_mod;
1890
1859
vis. visit_safety ( safety) ;
0 commit comments