aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/infer/coerce.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/hir_ty/src/infer/coerce.rs')
-rw-r--r--crates/hir_ty/src/infer/coerce.rs10
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 @@
7use chalk_ir::{cast::Cast, Mutability, TyVariableKind}; 7use chalk_ir::{cast::Cast, Mutability, TyVariableKind};
8use hir_def::lang_item::LangItemTarget; 8use hir_def::lang_item::LangItemTarget;
9 9
10use crate::{autoderef, Canonical, Interner, Solution, Ty, TyBuilder, TyExt, TyKind}; 10use crate::{autoderef, Canonical, DomainGoal, Interner, Solution, Ty, TyBuilder, TyExt, TyKind};
11 11
12use super::{InEnvironment, InferenceContext}; 12use 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(