diff options
Diffstat (limited to 'crates/hir_ty/src/infer.rs')
-rw-r--r-- | crates/hir_ty/src/infer.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/crates/hir_ty/src/infer.rs b/crates/hir_ty/src/infer.rs index f3cccca68..7898740be 100644 --- a/crates/hir_ty/src/infer.rs +++ b/crates/hir_ty/src/infer.rs | |||
@@ -284,6 +284,9 @@ impl<'a> InferenceContext<'a> { | |||
284 | 284 | ||
285 | fn resolve_all(mut self) -> InferenceResult { | 285 | fn resolve_all(mut self) -> InferenceResult { |
286 | // FIXME resolve obligations as well (use Guidance if necessary) | 286 | // FIXME resolve obligations as well (use Guidance if necessary) |
287 | |||
288 | // make sure diverging type variables are marked as such | ||
289 | self.table.propagate_diverging_flag(); | ||
287 | let mut result = std::mem::take(&mut self.result); | 290 | let mut result = std::mem::take(&mut self.result); |
288 | for ty in result.type_of_expr.values_mut() { | 291 | for ty in result.type_of_expr.values_mut() { |
289 | let resolved = self.table.resolve_ty_completely(ty.clone()); | 292 | let resolved = self.table.resolve_ty_completely(ty.clone()); |