diff options
author | Florian Diebold <[email protected]> | 2021-04-06 22:46:32 +0100 |
---|---|---|
committer | Florian Diebold <[email protected]> | 2021-04-06 22:46:32 +0100 |
commit | b03969cda92661ad67897fee0ba16c1cc61830ea (patch) | |
tree | 9131d26bacbda364c81ad0ace9d4428b0d8e3c33 /crates/hir_ty/src/traits.rs | |
parent | 31d2b3b9cb75a09c93655b38377ed5f4144ebaf0 (diff) |
Remove `SolutionVariables`, add ConstrainedSubst analogous to Chalk
... just missing the constraints.
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) |