about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--crates/hir/src/lib.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs
index ba7922ef3d7..f4e58d88ed8 100644
--- a/crates/hir/src/lib.rs
+++ b/crates/hir/src/lib.rs
@@ -1188,8 +1188,10 @@ impl DefWithBody {
             }
         }
         for (expr, mismatch) in infer.expr_type_mismatches() {
-            let expr =
-                source_map.expr_syntax(expr).expect("break outside of loop in synthetic syntax");
+            let expr = match source_map.expr_syntax(expr) {
+                Ok(expr) => expr,
+                Err(SyntheticSyntax) => continue,
+            };
             acc.push(
                 TypeMismatch {
                     expr,