@@ -1041,11 +1041,13 @@ const NUM_PREINTERNED_TY_VARS: u32 = 100;
1041
1041
const NUM_PREINTERNED_FRESH_TYS : u32 = 20 ;
1042
1042
const NUM_PREINTERNED_FRESH_INT_TYS : u32 = 3 ;
1043
1043
const NUM_PREINTERNED_FRESH_FLOAT_TYS : u32 = 3 ;
1044
+ const NUM_PREINTERNED_ANON_BOUND_TYS_I : u32 = 3 ;
1045
+ const NUM_PREINTERNED_ANON_BOUND_TYS_V : u32 = 20 ;
1044
1046
1045
1047
// This number may seem high, but it is reached in all but the smallest crates.
1046
1048
const NUM_PREINTERNED_RE_VARS : u32 = 500 ;
1047
- const NUM_PREINTERNED_RE_LATE_BOUNDS_I : u32 = 2 ;
1048
- const NUM_PREINTERNED_RE_LATE_BOUNDS_V : u32 = 20 ;
1049
+ const NUM_PREINTERNED_ANON_RE_BOUNDS_I : u32 = 3 ;
1050
+ const NUM_PREINTERNED_ANON_RE_BOUNDS_V : u32 = 20 ;
1049
1051
1050
1052
pub struct CommonTypes < ' tcx > {
1051
1053
pub unit : Ty < ' tcx > ,
@@ -1088,6 +1090,11 @@ pub struct CommonTypes<'tcx> {
1088
1090
1089
1091
/// Pre-interned `Infer(ty::FreshFloatTy(n))` for small values of `n`.
1090
1092
pub fresh_float_tys : Vec < Ty < ' tcx > > ,
1093
+
1094
+ /// Pre-interned values of the form:
1095
+ /// `Bound(DebruijnIndex(i), BoundTy { var: v, kind: BoundTyKind::Anon})`
1096
+ /// for small values of `i` and `v`.
1097
+ pub anon_bound_tys : Vec < Vec < Ty < ' tcx > > > ,
1091
1098
}
1092
1099
1093
1100
pub struct CommonLifetimes < ' tcx > {
@@ -1101,9 +1108,9 @@ pub struct CommonLifetimes<'tcx> {
1101
1108
pub re_vars : Vec < Region < ' tcx > > ,
1102
1109
1103
1110
/// Pre-interned values of the form:
1104
- /// `ReBound(DebruijnIndex(i), BoundRegion { var: v, kind: BrAnon })`
1111
+ /// `ReBound(DebruijnIndex(i), BoundRegion { var: v, kind: BoundRegionKind::Anon })`
1105
1112
/// for small values of `i` and `v`.
1106
- pub re_late_bounds : Vec < Vec < Region < ' tcx > > > ,
1113
+ pub anon_re_bounds : Vec < Vec < Region < ' tcx > > > ,
1107
1114
}
1108
1115
1109
1116
pub struct CommonConsts < ' tcx > {
@@ -1131,6 +1138,19 @@ impl<'tcx> CommonTypes<'tcx> {
1131
1138
let fresh_float_tys: Vec < _ > =
1132
1139
( 0 ..NUM_PREINTERNED_FRESH_FLOAT_TYS ) . map ( |n| mk ( Infer ( ty:: FreshFloatTy ( n) ) ) ) . collect ( ) ;
1133
1140
1141
+ let anon_bound_tys = ( 0 ..NUM_PREINTERNED_ANON_BOUND_TYS_I )
1142
+ . map ( |i| {
1143
+ ( 0 ..NUM_PREINTERNED_ANON_BOUND_TYS_V )
1144
+ . map ( |v| {
1145
+ mk ( ty:: Bound (
1146
+ ty:: DebruijnIndex :: from ( i) ,
1147
+ ty:: BoundTy { var : ty:: BoundVar :: from ( v) , kind : ty:: BoundTyKind :: Anon } ,
1148
+ ) )
1149
+ } )
1150
+ . collect ( )
1151
+ } )
1152
+ . collect ( ) ;
1153
+
1134
1154
CommonTypes {
1135
1155
unit : mk ( Tuple ( List :: empty ( ) ) ) ,
1136
1156
bool : mk ( Bool ) ,
@@ -1161,6 +1181,7 @@ impl<'tcx> CommonTypes<'tcx> {
1161
1181
fresh_tys,
1162
1182
fresh_int_tys,
1163
1183
fresh_float_tys,
1184
+ anon_bound_tys,
1164
1185
}
1165
1186
}
1166
1187
}
@@ -1176,9 +1197,9 @@ impl<'tcx> CommonLifetimes<'tcx> {
1176
1197
let re_vars =
1177
1198
( 0 ..NUM_PREINTERNED_RE_VARS ) . map ( |n| mk ( ty:: ReVar ( ty:: RegionVid :: from ( n) ) ) ) . collect ( ) ;
1178
1199
1179
- let re_late_bounds = ( 0 ..NUM_PREINTERNED_RE_LATE_BOUNDS_I )
1200
+ let anon_re_bounds = ( 0 ..NUM_PREINTERNED_ANON_RE_BOUNDS_I )
1180
1201
. map ( |i| {
1181
- ( 0 ..NUM_PREINTERNED_RE_LATE_BOUNDS_V )
1202
+ ( 0 ..NUM_PREINTERNED_ANON_RE_BOUNDS_V )
1182
1203
. map ( |v| {
1183
1204
mk ( ty:: ReBound (
1184
1205
ty:: DebruijnIndex :: from ( i) ,
@@ -1196,7 +1217,7 @@ impl<'tcx> CommonLifetimes<'tcx> {
1196
1217
re_static : mk ( ty:: ReStatic ) ,
1197
1218
re_erased : mk ( ty:: ReErased ) ,
1198
1219
re_vars,
1199
- re_late_bounds ,
1220
+ anon_re_bounds ,
1200
1221
}
1201
1222
}
1202
1223
}
0 commit comments