diff options
author | John Hodge <tpg@ucc.asn.au> | 2019-07-27 11:25:13 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2019-07-27 11:25:13 +0800 |
commit | 27705b75b4886ab3d5825f80ec9487b3a9a067c0 (patch) | |
tree | dc5db6d45724e245064a508299e2359f2eebe312 | |
parent | 3cd502d0e3262eabe1d0352711772b24a57b9aea (diff) | |
download | mrust-27705b75b4886ab3d5825f80ec9487b3a9a067c0.tar.gz |
Lower MIR - Handle match with union
-rw-r--r-- | src/mir/from_hir_match.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mir/from_hir_match.cpp b/src/mir/from_hir_match.cpp index 2bfb1a27..536842b7 100644 --- a/src/mir/from_hir_match.cpp +++ b/src/mir/from_hir_match.cpp @@ -395,6 +395,8 @@ void MIR_LowerHIR_Match( MirBuilder& builder, MirConverter& conv, ::HIR::ExprNod else { ac.has_condition = false; + ac.cond_start = ~0u; + ac.cond_false = ~0u; } // Code @@ -1218,7 +1220,12 @@ void PatternRulesetBuilder::append_from(const Span& sp, const ::HIR::Pattern& pa ) } TU_ARMA(Union, pbe) { - TODO(sp, "Match over union - " << ty); + TU_MATCH_DEF( ::HIR::Pattern::Data, (pat.m_data), (pe), + ( TODO(sp, "Match over union - " << ty << " with " << pat); ), + (Any, + this->push_rule( PatternRule::make_Any({}) ); + ) + ) } TU_ARMA(ExternType, pbe) { TU_MATCH_DEF( ::HIR::Pattern::Data, (pat.m_data), (pe), |