aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/infer
diff options
context:
space:
mode:
Diffstat (limited to 'crates/hir_ty/src/infer')
-rw-r--r--crates/hir_ty/src/infer/coerce.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/crates/hir_ty/src/infer/coerce.rs b/crates/hir_ty/src/infer/coerce.rs
index c82bda70f..8467ea056 100644
--- a/crates/hir_ty/src/infer/coerce.rs
+++ b/crates/hir_ty/src/infer/coerce.rs
@@ -19,6 +19,10 @@ impl<'a> InferenceContext<'a> {
19 /// Unify two types, but may coerce the first one to the second one 19 /// Unify two types, but may coerce the first one to the second one
20 /// using "implicit coercion rules" if needed. 20 /// using "implicit coercion rules" if needed.
21 pub(super) fn coerce(&mut self, from_ty: &Ty, to_ty: &Ty) -> bool { 21 pub(super) fn coerce(&mut self, from_ty: &Ty, to_ty: &Ty) -> bool {
22 // TODO handle expectations properly
23 if to_ty.is_unknown() {
24 return true;
25 }
22 let from_ty = self.resolve_ty_shallow(from_ty).into_owned(); 26 let from_ty = self.resolve_ty_shallow(from_ty).into_owned();
23 let to_ty = self.resolve_ty_shallow(to_ty); 27 let to_ty = self.resolve_ty_shallow(to_ty);
24 match self.coerce_inner(from_ty, &to_ty) { 28 match self.coerce_inner(from_ty, &to_ty) {