Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir_def/src/body/lower.rs')
| -rw-r--r-- | crates/hir_def/src/body/lower.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/crates/hir_def/src/body/lower.rs b/crates/hir_def/src/body/lower.rs index 372cf9aba8..3136206761 100644 --- a/crates/hir_def/src/body/lower.rs +++ b/crates/hir_def/src/body/lower.rs @@ -639,7 +639,16 @@ impl ExprCollector<'_> { let type_ref = stmt.ty().map(|it| Interned::new(TypeRef::from_ast(&self.ctx(), it))); let initializer = stmt.initializer().map(|e| self.collect_expr(e)); - self.statements_in_scope.push(Statement::Let { pat, type_ref, initializer }); + let else_branch = stmt + .let_else() + .and_then(|let_else| let_else.block_expr()) + .map(|block| self.collect_block(block)); + self.statements_in_scope.push(Statement::Let { + pat, + type_ref, + initializer, + else_branch, + }); } ast::Stmt::ExprStmt(stmt) => { if let Some(expr) = stmt.expr() { |