diff options
Diffstat (limited to 'src/mir/mir_builder.cpp')
-rw-r--r-- | src/mir/mir_builder.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/mir/mir_builder.cpp b/src/mir/mir_builder.cpp index f0cb8f27..c2667025 100644 --- a/src/mir/mir_builder.cpp +++ b/src/mir/mir_builder.cpp @@ -505,6 +505,7 @@ void MirBuilder::end_split_arm_early(const Span& sp) void MirBuilder::complete_scope(ScopeDef& sd) { sd.complete = true; + TU_MATCHA( (sd.data), (e), (Temporaries, DEBUG("Temporaries " << e.temporaries); @@ -516,8 +517,16 @@ void MirBuilder::complete_scope(ScopeDef& sd) DEBUG("Loop"); ), (Split, + ) + ) + + // No macro for better debug output. + if( sd.data.is_Split() ) + { + auto& e = sd.data.as_Split(); + assert( e.arms.size() > 1 ); - DEBUG("Split - " << (e.arms.size() - 1) << " arms"); + TRACE_FUNCTION_F("Split - " << (e.arms.size() - 1) << " arms"); e.arms.pop_back(); // Merge all arms and apply upwards @@ -643,8 +652,7 @@ void MirBuilder::complete_scope(ScopeDef& sd) //} } } - ) - ) + } } void MirBuilder::with_val_type(const Span& sp, const ::MIR::LValue& val, ::std::function<void(const ::HIR::TypeRef&)> cb) |