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.rs11
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() {