From 6e6acaa39a2d6e7491ef282e6ca0f6b4db808321 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sat, 2 Apr 2011 14:12:19 -0400 Subject: Fail on non-exhaustive alt matches --- src/comp/middle/trans.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/comp') diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index 5b4a08f3..b16acfd9 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -3581,9 +3581,9 @@ fn trans_alt(@block_ctxt cx, @ast.expr expr, vec[ast.arm] arms) this_cx = next_cx; } - // FIXME: This is executed when none of the patterns match; it should fail - // instead! - this_cx.build.Br(last_cx.llbb); + auto default_cx = this_cx; + auto default_res = trans_fail(default_cx, expr.span, + "non-exhaustive match failure"); // FIXME: This is very wrong; we should phi together all the arm blocks, // since this is an expression. -- cgit v1.2.3