summaryrefslogtreecommitdiff
path: root/src/mir/mir_builder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mir/mir_builder.cpp')
-rw-r--r--src/mir/mir_builder.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mir/mir_builder.cpp b/src/mir/mir_builder.cpp
index e3c0096d..1733df2f 100644
--- a/src/mir/mir_builder.cpp
+++ b/src/mir/mir_builder.cpp
@@ -747,7 +747,7 @@ namespace
case VarState::TAG_Optional: {
// Was invalid, now optional.
auto flag_idx = new_state.as_Optional();
- if( builder.get_drop_flag_default(sp, flag_idx) != false ) {
+ if( true || builder.get_drop_flag_default(sp, flag_idx) != false ) {
#if 1
auto new_flag = builder.new_drop_flag(false);
builder.push_stmt_set_dropflag_other(sp, new_flag, flag_idx);
@@ -757,7 +757,9 @@ namespace
TODO(sp, "Drop flag default not false when going Invalid->Optional");
#endif
}
- old_state = VarState::make_Optional( flag_idx );
+ else {
+ old_state = VarState::make_Optional( flag_idx );
+ }
return ;
}
case VarState::TAG_Partial: {
@@ -1594,7 +1596,7 @@ void MirBuilder::moved_lvalue(const Span& sp, const ::MIR::LValue& lv)
if( lvalue_is_copy(sp, lv) ) {
}
else {
- // TODO: Partial moves.
+ // TODO: Partial moves of fields.
moved_lvalue(sp, *e.val);
}
),