Skip to content

Commit 72aab7a

Browse files
committed
rustc_mir: remove unnecessary drop scope for constants.
1 parent 9809fe0 commit 72aab7a

File tree

1 file changed

+6
-13
lines changed

1 file changed

+6
-13
lines changed

src/librustc_mir/build/mod.rs

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -401,22 +401,15 @@ pub fn construct_const<'a, 'gcx, 'tcx>(hir: Cx<'a, 'gcx, 'tcx>,
401401
let span = tcx.hir.span(owner_id);
402402
let mut builder = Builder::new(hir.clone(), span, 0, ty);
403403

404-
let extent = hir.region_maps.temporary_scope(tcx, ast_expr.id)
405-
.unwrap_or(tcx.item_extent(owner_id));
406404
let mut block = START_BLOCK;
407-
let _ = builder.in_scope(extent, block, |builder| {
408-
let expr = builder.hir.mirror(ast_expr);
409-
unpack!(block = builder.into(&Lvalue::Local(RETURN_POINTER), block, expr));
405+
let expr = builder.hir.mirror(ast_expr);
406+
unpack!(block = builder.into_expr(&Lvalue::Local(RETURN_POINTER), block, expr));
410407

411-
let source_info = builder.source_info(span);
412-
let return_block = builder.return_block();
413-
builder.cfg.terminate(block, source_info,
414-
TerminatorKind::Goto { target: return_block });
415-
builder.cfg.terminate(return_block, source_info,
416-
TerminatorKind::Return);
408+
let source_info = builder.source_info(span);
409+
builder.cfg.terminate(block, source_info, TerminatorKind::Return);
417410

418-
return_block.unit()
419-
});
411+
// Constants can't `return` so a return block should not be created.
412+
assert_eq!(builder.cached_return_block, None);
420413

421414
builder.finish(vec![], ty)
422415
}

0 commit comments

Comments
 (0)