diff --git a/compiler/rustc_mir_build/src/build/expr/stmt.rs b/compiler/rustc_mir_build/src/build/expr/stmt.rs index a3fbd21642d..f01315fc5db 100644 --- a/compiler/rustc_mir_build/src/build/expr/stmt.rs +++ b/compiler/rustc_mir_build/src/build/expr/stmt.rs @@ -141,12 +141,12 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { if let ExprKind::Block { body } = &expr.kind { if let Some(tail_expr) = &body.expr { let mut expr = &*tail_expr; - while let ExprKind::Block { body: subblock } = &expr.kind { - if let Some(subtail_expr) = &subblock.expr { - expr = subtail_expr - } else { - break; - } + while let ExprKind::Block { + body: Block { expr: Some(nested_expr), .. }, + } + | ExprKind::Scope { value: nested_expr, .. } = &expr.kind + { + expr = nested_expr; } this.block_context.push(BlockFrame::TailExpr { tail_result_is_ignored: true,