about summary refs log tree commit diff
path: root/src/rustc
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2012-08-24 21:03:51 -0700
committerTim Chevalier <chevalier@alum.wellesley.edu>2012-08-24 22:28:12 -0700
commit5e22fb9c7f94c76e1e7e17709884198ec4ba3fcb (patch)
tree3f8504b434daa0eea689faf3c09177ccd551d545 /src/rustc
parentc7a3d0eb5820e63225b45a2e2c8c4e9b8f658601 (diff)
Remove match check
Diffstat (limited to 'src/rustc')
-rw-r--r--src/rustc/middle/borrowck/gather_loans.rs2
-rw-r--r--src/rustc/middle/check_alt.rs13
-rw-r--r--src/rustc/middle/liveness.rs2
-rw-r--r--src/rustc/middle/region.rs2
-rw-r--r--src/rustc/middle/trans/alt.rs16
-rw-r--r--src/rustc/middle/trans/base.rs6
-rw-r--r--src/rustc/middle/typeck/check.rs2
7 files changed, 15 insertions, 28 deletions
diff --git a/src/rustc/middle/borrowck/gather_loans.rs b/src/rustc/middle/borrowck/gather_loans.rs
index 648d7f1e9b5..f289caafbc6 100644
--- a/src/rustc/middle/borrowck/gather_loans.rs
+++ b/src/rustc/middle/borrowck/gather_loans.rs
@@ -171,7 +171,7 @@ fn req_loans_in_expr(ex: @ast::expr,
         visit::visit_expr(ex, self, vt);
       }
 
-      ast::expr_match(ex_v, arms, _) => {
+      ast::expr_match(ex_v, arms) => {
         let cmt = self.bccx.cat_expr(ex_v);
         for arms.each |arm| {
             for arm.pats.each |pat| {
diff --git a/src/rustc/middle/check_alt.rs b/src/rustc/middle/check_alt.rs
index a1e3dc439a9..c78b2c8419d 100644
--- a/src/rustc/middle/check_alt.rs
+++ b/src/rustc/middle/check_alt.rs
@@ -24,7 +24,7 @@ fn check_crate(tcx: ty::ctxt, crate: @crate) {
 fn check_expr(tcx: ty::ctxt, ex: @expr, &&s: (), v: visit::vt<()>) {
     visit::visit_expr(ex, s, v);
     match ex.node {
-      expr_match(scrut, arms, mode) => {
+      expr_match(scrut, arms) => {
         check_arms(tcx, arms);
         /* Check for exhaustiveness */
          // Check for empty enum, because is_useful only works on inhabited
@@ -48,13 +48,10 @@ fn check_expr(tcx: ty::ctxt, ex: @expr, &&s: (), v: visit::vt<()>) {
           }
           _ => { /* We assume only enum types can be uninhabited */ }
        }
-
-        if mode == alt_exhaustive {
-            let arms = vec::concat(vec::filter_map(arms, unguarded_pat));
-            check_exhaustive(tcx, ex.span, arms);
-        }
-      }
-      _ => ()
+       let arms = vec::concat(vec::filter_map(arms, unguarded_pat));
+       check_exhaustive(tcx, ex.span, arms);
+     }
+     _ => ()
     }
 }
 
diff --git a/src/rustc/middle/liveness.rs b/src/rustc/middle/liveness.rs
index ee8c6c2baec..c49c8f50bcd 100644
--- a/src/rustc/middle/liveness.rs
+++ b/src/rustc/middle/liveness.rs
@@ -1048,7 +1048,7 @@ impl Liveness {
             self.propagate_through_loop(expr, none, blk, succ)
           }
 
-          expr_match(e, arms, _) => {
+          expr_match(e, arms) => {
             //
             //      (e)
             //       |
diff --git a/src/rustc/middle/region.rs b/src/rustc/middle/region.rs
index 5b6a64ccd73..7d04840593e 100644
--- a/src/rustc/middle/region.rs
+++ b/src/rustc/middle/region.rs
@@ -259,7 +259,7 @@ fn resolve_expr(expr: @ast::expr, cx: ctxt, visitor: visit::vt<ctxt>) {
                                                            cx.sess.intr()));
         new_cx.parent = some(expr.id);
       }
-      ast::expr_match(subexpr, _, _) => {
+      ast::expr_match(subexpr, _) => {
         debug!("node %d: %s", expr.id, pprust::expr_to_str(expr,
                                                            cx.sess.intr()));
         new_cx.parent = some(expr.id);
diff --git a/src/rustc/middle/trans/alt.rs b/src/rustc/middle/trans/alt.rs
index b67e490863d..31a6d5658f0 100644
--- a/src/rustc/middle/trans/alt.rs
+++ b/src/rustc/middle/trans/alt.rs
@@ -822,16 +822,15 @@ fn trans_alt(bcx: block,
              alt_expr: @ast::expr,
              expr: @ast::expr,
              arms: ~[ast::arm],
-             mode: ast::alt_mode,
              dest: dest) -> block {
     let _icx = bcx.insn_ctxt("alt::trans_alt");
     do with_scope(bcx, alt_expr.info(), ~"alt") |bcx| {
-        trans_alt_inner(bcx, expr, arms, mode, dest)
+        trans_alt_inner(bcx, expr, arms, dest)
     }
 }
 
 fn trans_alt_inner(scope_cx: block, expr: @ast::expr, arms: ~[ast::arm],
-                   mode: ast::alt_mode, dest: dest) -> block {
+                   dest: dest) -> block {
     let _icx = scope_cx.insn_ctxt("alt::trans_alt_inner");
     let bcx = scope_cx, tcx = bcx.tcx();
     let mut bodies = ~[], matches = ~[];
@@ -860,15 +859,7 @@ fn trans_alt_inner(scope_cx: block, expr: @ast::expr, arms: ~[ast::arm],
             return fail_cx.llbb;
     }
     let t = node_id_type(bcx, expr.id);
-    let mk_fail = match mode {
-      ast::alt_check => {
-        let fail_cx = @mut none;
-        // Cached fail-on-fallthrough block
-        some(|| mk_fail(scope_cx, expr.span, ~"non-exhaustive match failure",
-                        fail_cx))
-      }
-      ast::alt_exhaustive => {
-          let fail_cx = @mut none;
+    let mk_fail = { let fail_cx = @mut none;
           // special case for uninhabited type
           if ty::type_is_empty(tcx, t) {
                   some(|| mk_fail(scope_cx, expr.span,
@@ -877,7 +868,6 @@ fn trans_alt_inner(scope_cx: block, expr: @ast::expr, arms: ~[ast::arm],
           else {
               none
           }
-      }
     };
     let mut exit_map = ~[];
     let spilled = spill_if_immediate(bcx, val, t);
diff --git a/src/rustc/middle/trans/base.rs b/src/rustc/middle/trans/base.rs
index 02f3c74972a..ab5c5a468bd 100644
--- a/src/rustc/middle/trans/base.rs
+++ b/src/rustc/middle/trans/base.rs
@@ -3798,8 +3798,8 @@ fn trans_expr(bcx: block, e: @ast::expr, dest: dest) -> block {
           ast::expr_if(cond, thn, els) => {
             return trans_if(bcx, cond, thn, els, dest);
           }
-          ast::expr_match(expr, arms, mode) => {
-            return alt::trans_alt(bcx, e, expr, arms, mode, dest);
+          ast::expr_match(expr, arms) => {
+            return alt::trans_alt(bcx, e, expr, arms, dest);
           }
           ast::expr_block(blk) => {
             return do with_scope(bcx, blk.info(), ~"block-expr body") |bcx| {
@@ -4488,7 +4488,7 @@ fn trans_block_cleanups_(bcx: block,
                 }
               }
             }
-            }
+        }
     return bcx;
 }
 
diff --git a/src/rustc/middle/typeck/check.rs b/src/rustc/middle/typeck/check.rs
index 9563163c706..5917574936f 100644
--- a/src/rustc/middle/typeck/check.rs
+++ b/src/rustc/middle/typeck/check.rs
@@ -1599,7 +1599,7 @@ fn check_expr_with_unifier(fcx: @fn_ctxt,
         fcx.write_ty(id, ty::mk_nil(tcx));
         bot = !may_break(body);
       }
-      ast::expr_match(discrim, arms, mode) => {
+      ast::expr_match(discrim, arms) => {
         bot = alt::check_alt(fcx, expr, discrim, arms);
       }
       ast::expr_fn(proto, decl, body, cap_clause) => {