@@ -46,7 +46,7 @@ use self::region_constraints::{GenericKind, RegionConstraintData, VarInfos, Veri
46
46
use self :: region_constraints:: {
47
47
RegionConstraintCollector , RegionConstraintStorage , RegionSnapshot ,
48
48
} ;
49
- use self :: type_variable:: { Diverging , TypeVariableOrigin , TypeVariableOriginKind } ;
49
+ use self :: type_variable:: { TypeVariableOrigin , TypeVariableOriginKind } ;
50
50
51
51
pub mod at;
52
52
pub mod canonical;
@@ -702,17 +702,6 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
702
702
t. fold_with ( & mut self . freshener ( ) )
703
703
}
704
704
705
- /// Returns whether `ty` is a diverging type variable or not.
706
- /// (If `ty` is not a type variable at all, returns not diverging.)
707
- ///
708
- /// No attempt is made to resolve `ty`.
709
- pub fn type_var_diverges ( & ' a self , ty : Ty < ' _ > ) -> Diverging {
710
- match * ty. kind ( ) {
711
- ty:: Infer ( ty:: TyVar ( vid) ) => self . inner . borrow_mut ( ) . type_variables ( ) . var_diverges ( vid) ,
712
- _ => Diverging :: NotDiverging ,
713
- }
714
- }
715
-
716
705
/// Returns the origin of the type variable identified by `vid`, or `None`
717
706
/// if this is not a type variable.
718
707
///
@@ -1071,31 +1060,28 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
1071
1060
} )
1072
1061
}
1073
1062
1074
- pub fn next_ty_var_id ( & self , diverging : Diverging , origin : TypeVariableOrigin ) -> TyVid {
1075
- self . inner . borrow_mut ( ) . type_variables ( ) . new_var ( self . universe ( ) , diverging, origin)
1063
+ /// Number of type variables created so far.
1064
+ pub fn num_ty_vars ( & self ) -> usize {
1065
+ self . inner . borrow_mut ( ) . type_variables ( ) . num_vars ( )
1066
+ }
1067
+
1068
+ pub fn next_ty_var_id ( & self , origin : TypeVariableOrigin ) -> TyVid {
1069
+ self . inner . borrow_mut ( ) . type_variables ( ) . new_var ( self . universe ( ) , origin)
1076
1070
}
1077
1071
1078
1072
pub fn next_ty_var ( & self , origin : TypeVariableOrigin ) -> Ty < ' tcx > {
1079
- self . tcx . mk_ty_var ( self . next_ty_var_id ( Diverging :: NotDiverging , origin) )
1073
+ self . tcx . mk_ty_var ( self . next_ty_var_id ( origin) )
1080
1074
}
1081
1075
1082
1076
pub fn next_ty_var_in_universe (
1083
1077
& self ,
1084
1078
origin : TypeVariableOrigin ,
1085
1079
universe : ty:: UniverseIndex ,
1086
1080
) -> Ty < ' tcx > {
1087
- let vid = self . inner . borrow_mut ( ) . type_variables ( ) . new_var (
1088
- universe,
1089
- Diverging :: NotDiverging ,
1090
- origin,
1091
- ) ;
1081
+ let vid = self . inner . borrow_mut ( ) . type_variables ( ) . new_var ( universe, origin) ;
1092
1082
self . tcx . mk_ty_var ( vid)
1093
1083
}
1094
1084
1095
- pub fn next_diverging_ty_var ( & self , origin : TypeVariableOrigin ) -> Ty < ' tcx > {
1096
- self . tcx . mk_ty_var ( self . next_ty_var_id ( Diverging :: Diverges , origin) )
1097
- }
1098
-
1099
1085
pub fn next_const_var (
1100
1086
& self ,
1101
1087
ty : Ty < ' tcx > ,
@@ -1207,7 +1193,6 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
1207
1193
// as the substitutions for the default, `(T, U)`.
1208
1194
let ty_var_id = self . inner . borrow_mut ( ) . type_variables ( ) . new_var (
1209
1195
self . universe ( ) ,
1210
- Diverging :: NotDiverging ,
1211
1196
TypeVariableOrigin {
1212
1197
kind : TypeVariableOriginKind :: TypeParameterDefinition (
1213
1198
param. name ,
0 commit comments