@@ -102,31 +102,28 @@ pub(crate) fn evaluate_goal<'tcx>(
102
102
. iter ( )
103
103
. map ( |p| p. lower_into ( interner) . fold_with ( & mut reverse_param_substitutor) ) ,
104
104
) ;
105
- let variables: Vec < _ > = binders
106
- . iter ( interner)
107
- . map ( |var| {
108
- let kind = match var. kind {
109
- chalk_ir:: VariableKind :: Ty ( ty_kind) => CanonicalVarKind :: Ty ( match ty_kind {
110
- chalk_ir:: TyVariableKind :: General => CanonicalTyVarKind :: General (
111
- ty:: UniverseIndex :: from_usize ( var. skip_kind ( ) . counter ) ,
112
- ) ,
113
- chalk_ir:: TyVariableKind :: Integer => CanonicalTyVarKind :: Int ,
114
- chalk_ir:: TyVariableKind :: Float => CanonicalTyVarKind :: Float ,
115
- } ) ,
116
- chalk_ir:: VariableKind :: Lifetime => CanonicalVarKind :: Region (
105
+ let variables = binders. iter ( interner) . map ( |var| {
106
+ let kind = match var. kind {
107
+ chalk_ir:: VariableKind :: Ty ( ty_kind) => CanonicalVarKind :: Ty ( match ty_kind {
108
+ chalk_ir:: TyVariableKind :: General => CanonicalTyVarKind :: General (
117
109
ty:: UniverseIndex :: from_usize ( var. skip_kind ( ) . counter ) ,
118
110
) ,
119
- // FIXME(compiler-errors): We don't currently have a way of turning
120
- // a Chalk ty back into a rustc ty, right?
121
- chalk_ir:: VariableKind :: Const ( _) => todo ! ( ) ,
122
- } ;
123
- CanonicalVarInfo { kind }
124
- } )
125
- . collect ( ) ;
111
+ chalk_ir:: TyVariableKind :: Integer => CanonicalTyVarKind :: Int ,
112
+ chalk_ir:: TyVariableKind :: Float => CanonicalTyVarKind :: Float ,
113
+ } ) ,
114
+ chalk_ir:: VariableKind :: Lifetime => {
115
+ CanonicalVarKind :: Region ( ty:: UniverseIndex :: from_usize ( var. skip_kind ( ) . counter ) )
116
+ }
117
+ // FIXME(compiler-errors): We don't currently have a way of turning
118
+ // a Chalk ty back into a rustc ty, right?
119
+ chalk_ir:: VariableKind :: Const ( _) => todo ! ( ) ,
120
+ } ;
121
+ CanonicalVarInfo { kind }
122
+ } ) ;
126
123
let max_universe = binders. iter ( interner) . map ( |v| v. skip_kind ( ) . counter ) . max ( ) . unwrap_or ( 0 ) ;
127
124
let sol = Canonical {
128
125
max_universe : ty:: UniverseIndex :: from_usize ( max_universe) ,
129
- variables : tcx. mk_canonical_var_infos ( & variables) ,
126
+ variables : tcx. mk_canonical_var_infos_from_iter ( variables) ,
130
127
value : QueryResponse {
131
128
var_values : CanonicalVarValues { var_values } ,
132
129
region_constraints : QueryRegionConstraints :: default ( ) ,
0 commit comments