@@ -401,22 +401,15 @@ pub fn construct_const<'a, 'gcx, 'tcx>(hir: Cx<'a, 'gcx, 'tcx>,
401
401
let span = tcx. hir . span ( owner_id) ;
402
402
let mut builder = Builder :: new ( hir. clone ( ) , span, 0 , ty) ;
403
403
404
- let extent = hir. region_maps . temporary_scope ( tcx, ast_expr. id )
405
- . unwrap_or ( tcx. item_extent ( owner_id) ) ;
406
404
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) ) ;
410
407
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 ) ;
417
410
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 ) ;
420
413
421
414
builder. finish ( vec ! [ ] , ty)
422
415
}
0 commit comments