diff options
Diffstat (limited to 'src/mir/from_hir.cpp')
-rw-r--r-- | src/mir/from_hir.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mir/from_hir.cpp b/src/mir/from_hir.cpp index 5a0efc29..95b2d5dc 100644 --- a/src/mir/from_hir.cpp +++ b/src/mir/from_hir.cpp @@ -1514,13 +1514,16 @@ namespace { if( node.m_args.size() == 1 ) { - values.push_back( m_builder.get_result_in_lvalue(arg->span(), arg->m_res_type) ); + values.push_back( m_builder.get_result_in_lvalue(arg->span(), arg->m_res_type, /*allow_missing_value=*/true) ); } else { // NOTE: Have to allocate a new temporary because ordering matters auto tmp = m_builder.new_temporary(arg->m_res_type); - m_builder.push_stmt_assign( arg->span(), tmp.clone(), m_builder.get_result(arg->span()) ); + if( m_builder.block_active() ) + { + m_builder.push_stmt_assign( arg->span(), tmp.clone(), m_builder.get_result(arg->span()) ); + } values.push_back( mv$(tmp) ); } |