diff options
Diffstat (limited to 'crates/hir_ty/src/traits.rs')
-rw-r--r-- | crates/hir_ty/src/traits.rs | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/crates/hir_ty/src/traits.rs b/crates/hir_ty/src/traits.rs index c8883485c..3374532c3 100644 --- a/crates/hir_ty/src/traits.rs +++ b/crates/hir_ty/src/traits.rs | |||
@@ -9,7 +9,7 @@ use stdx::panic_context; | |||
9 | 9 | ||
10 | use crate::{ | 10 | use crate::{ |
11 | db::HirDatabase, AliasEq, AliasTy, Canonical, DomainGoal, Guidance, HirDisplay, InEnvironment, | 11 | db::HirDatabase, AliasEq, AliasTy, Canonical, DomainGoal, Guidance, HirDisplay, InEnvironment, |
12 | Solution, SolutionVariables, Ty, TyKind, WhereClause, | 12 | Solution, Ty, TyKind, WhereClause, |
13 | }; | 13 | }; |
14 | 14 | ||
15 | use self::chalk::{from_chalk, Interner, ToChalk}; | 15 | use self::chalk::{from_chalk, Interner, ToChalk}; |
@@ -173,23 +173,15 @@ fn solution_from_chalk( | |||
173 | db: &dyn HirDatabase, | 173 | db: &dyn HirDatabase, |
174 | solution: chalk_solve::Solution<Interner>, | 174 | solution: chalk_solve::Solution<Interner>, |
175 | ) -> Solution { | 175 | ) -> Solution { |
176 | let convert_subst = |subst: chalk_ir::Canonical<chalk_ir::Substitution<Interner>>| { | ||
177 | let result = from_chalk(db, subst); | ||
178 | SolutionVariables(result) | ||
179 | }; | ||
180 | match solution { | 176 | match solution { |
181 | chalk_solve::Solution::Unique(constr_subst) => { | 177 | chalk_solve::Solution::Unique(constr_subst) => { |
182 | let subst = chalk_ir::Canonical { | 178 | Solution::Unique(from_chalk(db, constr_subst)) |
183 | value: constr_subst.value.subst, | ||
184 | binders: constr_subst.binders, | ||
185 | }; | ||
186 | Solution::Unique(convert_subst(subst)) | ||
187 | } | 179 | } |
188 | chalk_solve::Solution::Ambig(chalk_solve::Guidance::Definite(subst)) => { | 180 | chalk_solve::Solution::Ambig(chalk_solve::Guidance::Definite(subst)) => { |
189 | Solution::Ambig(Guidance::Definite(convert_subst(subst))) | 181 | Solution::Ambig(Guidance::Definite(from_chalk(db, subst))) |
190 | } | 182 | } |
191 | chalk_solve::Solution::Ambig(chalk_solve::Guidance::Suggested(subst)) => { | 183 | chalk_solve::Solution::Ambig(chalk_solve::Guidance::Suggested(subst)) => { |
192 | Solution::Ambig(Guidance::Suggested(convert_subst(subst))) | 184 | Solution::Ambig(Guidance::Suggested(from_chalk(db, subst))) |
193 | } | 185 | } |
194 | chalk_solve::Solution::Ambig(chalk_solve::Guidance::Unknown) => { | 186 | chalk_solve::Solution::Ambig(chalk_solve::Guidance::Unknown) => { |
195 | Solution::Ambig(Guidance::Unknown) | 187 | Solution::Ambig(Guidance::Unknown) |