diff options
Diffstat (limited to 'crates/hir_ty/src/infer.rs')
-rw-r--r-- | crates/hir_ty/src/infer.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/crates/hir_ty/src/infer.rs b/crates/hir_ty/src/infer.rs index 2a82f1b47..603068ab5 100644 --- a/crates/hir_ty/src/infer.rs +++ b/crates/hir_ty/src/infer.rs | |||
@@ -106,6 +106,14 @@ impl Default for BindingMode { | |||
106 | } | 106 | } |
107 | } | 107 | } |
108 | 108 | ||
109 | #[derive(Debug)] | ||
110 | pub(crate) struct InferOk { | ||
111 | // obligations | ||
112 | } | ||
113 | #[derive(Debug)] | ||
114 | pub(crate) struct TypeError; | ||
115 | pub(crate) type InferResult = Result<InferOk, TypeError>; | ||
116 | |||
109 | /// A mismatch between an expected and an inferred type. | 117 | /// A mismatch between an expected and an inferred type. |
110 | #[derive(Clone, PartialEq, Eq, Debug, Hash)] | 118 | #[derive(Clone, PartialEq, Eq, Debug, Hash)] |
111 | pub struct TypeMismatch { | 119 | pub struct TypeMismatch { |
@@ -390,6 +398,10 @@ impl<'a> InferenceContext<'a> { | |||
390 | self.table.unify(ty1, ty2) | 398 | self.table.unify(ty1, ty2) |
391 | } | 399 | } |
392 | 400 | ||
401 | fn unify_inner(&mut self, ty1: &Ty, ty2: &Ty) -> InferResult { | ||
402 | self.table.unify_inner(ty1, ty2) | ||
403 | } | ||
404 | |||
393 | // FIXME get rid of this, instead resolve shallowly where necessary | 405 | // FIXME get rid of this, instead resolve shallowly where necessary |
394 | /// Resolves the type as far as currently possible, replacing type variables | 406 | /// Resolves the type as far as currently possible, replacing type variables |
395 | /// by their known types. All types returned by the infer_* functions should | 407 | /// by their known types. All types returned by the infer_* functions should |