summaryrefslogtreecommitdiff
path: root/src/mir/mir_builder.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-11-19 14:40:09 +0800
committerJohn Hodge <tpg@mutabah.net>2016-11-19 14:40:09 +0800
commit9fa6d7463f027bfe3b22968bd01431570d6ae4a2 (patch)
tree9263db3073655f540efd5cbf271f979b9f6e0a33 /src/mir/mir_builder.cpp
parent3aa2b49c7d2234b45c843f08f1eeee9387ba02e1 (diff)
downloadmrust-9fa6d7463f027bfe3b22968bd01431570d6ae4a2.tar.gz
MIR Gen - Bugcheck on Unbound paths
Diffstat (limited to 'src/mir/mir_builder.cpp')
-rw-r--r--src/mir/mir_builder.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mir/mir_builder.cpp b/src/mir/mir_builder.cpp
index 21afefba..1148aec2 100644
--- a/src/mir/mir_builder.cpp
+++ b/src/mir/mir_builder.cpp
@@ -815,7 +815,8 @@ void MirBuilder::with_val_type(const Span& sp, const ::MIR::LValue& val, ::std::
BUG(sp, "Downcast on unexpected type - " << ty);
),
(Path,
- ASSERT_BUG(sp, te.binding.is_Enum(), "Downcast on non-Enum");
+ ASSERT_BUG(sp, !te.binding.is_Unbound(), "Unbound path " << ty << " encountered");
+ ASSERT_BUG(sp, te.binding.is_Enum(), "Downcast on non-Enum - " << ty << " for " << val);
const auto& enm = *te.binding.as_Enum();
const auto& variants = enm.m_variants;
ASSERT_BUG(sp, e.variant_index < variants.size(), "Variant index out of range");