diff options
author | Florian Diebold <[email protected]> | 2021-04-11 10:20:45 +0100 |
---|---|---|
committer | Florian Diebold <[email protected]> | 2021-05-21 16:48:33 +0100 |
commit | 84074cb1852aa702e1307e9533e1fa3448e3e04f (patch) | |
tree | 87e1ba3ee0745bf10ab2de86714616e80972f024 /crates/hir_ty/src/infer/coerce.rs | |
parent | eb08a27f1bd31cc15db4893dded60663effaf3f9 (diff) |
Remove our unification code, use Chalk's instead
Diffstat (limited to 'crates/hir_ty/src/infer/coerce.rs')
-rw-r--r-- | crates/hir_ty/src/infer/coerce.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/crates/hir_ty/src/infer/coerce.rs b/crates/hir_ty/src/infer/coerce.rs index 1f463a425..ae858b1b0 100644 --- a/crates/hir_ty/src/infer/coerce.rs +++ b/crates/hir_ty/src/infer/coerce.rs | |||
@@ -7,7 +7,7 @@ | |||
7 | use chalk_ir::{cast::Cast, Mutability, TyVariableKind}; | 7 | use chalk_ir::{cast::Cast, Mutability, TyVariableKind}; |
8 | use hir_def::lang_item::LangItemTarget; | 8 | use hir_def::lang_item::LangItemTarget; |
9 | 9 | ||
10 | use crate::{autoderef, Canonical, Interner, Solution, Ty, TyBuilder, TyExt, TyKind}; | 10 | use crate::{autoderef, Canonical, DomainGoal, Interner, Solution, Ty, TyBuilder, TyExt, TyKind}; |
11 | 11 | ||
12 | use super::{InEnvironment, InferenceContext}; | 12 | use super::{InEnvironment, InferenceContext}; |
13 | 13 | ||
@@ -141,10 +141,10 @@ impl<'a> InferenceContext<'a> { | |||
141 | b.push(from_ty.clone()).push(to_ty.clone()).build() | 141 | b.push(from_ty.clone()).push(to_ty.clone()).build() |
142 | }; | 142 | }; |
143 | 143 | ||
144 | let goal = InEnvironment::new(&self.trait_env.env, trait_ref.cast(&Interner)); | 144 | let goal: InEnvironment<DomainGoal> = |
145 | InEnvironment::new(&self.trait_env.env, trait_ref.cast(&Interner)); | ||
145 | 146 | ||
146 | let canonicalizer = self.canonicalizer(); | 147 | let canonicalized = self.canonicalize(goal); |
147 | let canonicalized = canonicalizer.canonicalize_obligation(goal); | ||
148 | 148 | ||
149 | let solution = self.db.trait_solve(krate, canonicalized.value.clone())?; | 149 | let solution = self.db.trait_solve(krate, canonicalized.value.clone())?; |
150 | 150 | ||
@@ -169,7 +169,7 @@ impl<'a> InferenceContext<'a> { | |||
169 | /// | 169 | /// |
170 | /// Note that the parameters are already stripped the outer reference. | 170 | /// Note that the parameters are already stripped the outer reference. |
171 | fn unify_autoderef_behind_ref(&mut self, from_ty: &Ty, to_ty: &Ty) -> bool { | 171 | fn unify_autoderef_behind_ref(&mut self, from_ty: &Ty, to_ty: &Ty) -> bool { |
172 | let canonicalized = self.canonicalizer().canonicalize_ty(from_ty.clone()); | 172 | let canonicalized = self.canonicalize(from_ty.clone()); |
173 | let to_ty = self.resolve_ty_shallow(&to_ty); | 173 | let to_ty = self.resolve_ty_shallow(&to_ty); |
174 | // FIXME: Auto DerefMut | 174 | // FIXME: Auto DerefMut |
175 | for derefed_ty in autoderef::autoderef( | 175 | for derefed_ty in autoderef::autoderef( |