about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/auxiliary/cci_nested_lib.rs2
-rw-r--r--src/test/auxiliary/issue2378a.rs4
-rw-r--r--src/test/auxiliary/static-methods-crate.rs2
-rw-r--r--src/test/bench/graph500-bfs.rs4
-rw-r--r--src/test/bench/pingpong.rs4
-rw-r--r--src/test/bench/sudoku.rs2
-rw-r--r--src/test/bench/task-perf-alloc-unwind.rs2
-rw-r--r--src/test/bench/task-perf-jargon-metal-smoke.rs2
-rw-r--r--src/test/bench/task-perf-linked-failure.rs2
-rw-r--r--src/test/compile-fail/alt-join.rs2
-rw-r--r--src/test/compile-fail/bad-bang-ann.rs2
-rw-r--r--src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-1.rs2
-rw-r--r--src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-2.rs2
-rw-r--r--src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-3.rs2
-rw-r--r--src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-4.rs2
-rw-r--r--src/test/compile-fail/bind-by-move-no-guards.rs4
-rw-r--r--src/test/compile-fail/bind-by-move-no-lvalues-1.rs2
-rw-r--r--src/test/compile-fail/bind-by-move-no-lvalues-2.rs2
-rw-r--r--src/test/compile-fail/bind-by-move-no-sub-bindings.rs2
-rw-r--r--src/test/compile-fail/borrowck-autoref-3261.rs2
-rw-r--r--src/test/compile-fail/borrowck-loan-local-as-both-mut-and-imm.rs2
-rw-r--r--src/test/compile-fail/borrowck-ref-into-rvalue.rs2
-rw-r--r--src/test/compile-fail/closure-that-fails.rs2
-rw-r--r--src/test/compile-fail/deref-non-pointer.rs4
-rw-r--r--src/test/compile-fail/fail-expr.rs2
-rw-r--r--src/test/compile-fail/fail-simple.rs2
-rw-r--r--src/test/compile-fail/fail-type-err.rs2
-rw-r--r--src/test/compile-fail/issue-2149.rs2
-rw-r--r--src/test/compile-fail/issue-2150.rs4
-rw-r--r--src/test/compile-fail/issue-2330.rs2
-rw-r--r--src/test/compile-fail/issue-2354.rs4
-rw-r--r--src/test/compile-fail/issue-2611-3.rs4
-rw-r--r--src/test/compile-fail/issue-2611-4.rs4
-rw-r--r--src/test/compile-fail/issue-2611-5.rs4
-rw-r--r--src/test/compile-fail/issue-2817.rs10
-rw-r--r--src/test/compile-fail/issue-3021.rs2
-rw-r--r--src/test/compile-fail/issue-3601.rs2
-rw-r--r--src/test/compile-fail/issue-3668.rs2
-rw-r--r--src/test/compile-fail/issue-897-2.rs2
-rw-r--r--src/test/compile-fail/issue-897.rs2
-rw-r--r--src/test/compile-fail/liveness-use-after-send.rs4
-rw-r--r--src/test/compile-fail/non-exhaustive-match-nested.rs4
-rw-r--r--src/test/compile-fail/noncopyable-match-pattern.rs2
-rw-r--r--src/test/compile-fail/not-enough-arguments.rs2
-rw-r--r--src/test/compile-fail/pattern-tyvar-2.rs2
-rw-r--r--src/test/compile-fail/pattern-tyvar.rs2
-rw-r--r--src/test/compile-fail/qquote-1.rs2
-rw-r--r--src/test/compile-fail/qquote-2.rs2
-rw-r--r--src/test/compile-fail/regions-fn-bound.rs4
-rw-r--r--src/test/compile-fail/regions-fn-subtyping.rs6
-rw-r--r--src/test/compile-fail/tag-that-dare-not-speak-its-name.rs2
-rw-r--r--src/test/compile-fail/tag-type-args.rs2
-rw-r--r--src/test/compile-fail/warn-foreign-int-types.rs2
-rw-r--r--src/test/pretty/issue-929.rs4
-rw-r--r--src/test/run-fail/alt-bot-fail.rs2
-rw-r--r--src/test/run-fail/alt-disc-bot.rs2
-rw-r--r--src/test/run-fail/alt-wildcards.rs6
-rw-r--r--src/test/run-fail/args-fail.rs4
-rw-r--r--src/test/run-fail/binop-fail-2.rs2
-rw-r--r--src/test/run-fail/binop-fail.rs2
-rw-r--r--src/test/run-fail/bug-811.rs4
-rw-r--r--src/test/run-fail/doublefail.rs6
-rw-r--r--src/test/run-fail/explicit-fail-msg.rs2
-rw-r--r--src/test/run-fail/explicit-fail.rs2
-rw-r--r--src/test/run-fail/expr-alt-fail-fn.rs2
-rw-r--r--src/test/run-fail/expr-alt-fail.rs2
-rw-r--r--src/test/run-fail/expr-fn-fail.rs2
-rw-r--r--src/test/run-fail/expr-if-fail-fn.rs2
-rw-r--r--src/test/run-fail/expr-if-fail.rs2
-rw-r--r--src/test/run-fail/extern-fail.rs2
-rw-r--r--src/test/run-fail/fail-main.rs2
-rw-r--r--src/test/run-fail/fmt-fail.rs2
-rw-r--r--src/test/run-fail/for-each-loop-fail.rs2
-rw-r--r--src/test/run-fail/if-check-fail.rs2
-rw-r--r--src/test/run-fail/if-cond-bot.rs2
-rw-r--r--src/test/run-fail/issue-2156.rs2
-rw-r--r--src/test/run-fail/issue-2272.rs4
-rw-r--r--src/test/run-fail/issue-3029.rs2
-rw-r--r--src/test/run-fail/linked-failure2.rs2
-rw-r--r--src/test/run-fail/linked-failure3.rs2
-rw-r--r--src/test/run-fail/morestack1.rs6
-rw-r--r--src/test/run-fail/morestack2.rs2
-rw-r--r--src/test/run-fail/morestack3.rs2
-rw-r--r--src/test/run-fail/morestack4.rs2
-rw-r--r--src/test/run-fail/rhs-type.rs2
-rw-r--r--src/test/run-fail/rt-log-trunc.rs4
-rw-r--r--src/test/run-fail/rt-set-exit-status-fail.rs4
-rw-r--r--src/test/run-fail/rt-set-exit-status-fail2.rs2
-rw-r--r--src/test/run-fail/run-unexported-tests.rs2
-rw-r--r--src/test/run-fail/spawnfail.rs4
-rw-r--r--src/test/run-fail/task-comm-recv-block.rs2
-rw-r--r--src/test/run-fail/unwind-alt.rs4
-rw-r--r--src/test/run-fail/unwind-box-fn-unique.rs2
-rw-r--r--src/test/run-fail/unwind-box-fn.rs2
-rw-r--r--src/test/run-fail/unwind-box-res.rs2
-rw-r--r--src/test/run-fail/unwind-box-str.rs4
-rw-r--r--src/test/run-fail/unwind-box-trait.rs4
-rw-r--r--src/test/run-fail/unwind-box-unique-unique.rs4
-rw-r--r--src/test/run-fail/unwind-box-unique.rs4
-rw-r--r--src/test/run-fail/unwind-box-vec.rs4
-rw-r--r--src/test/run-fail/unwind-box.rs4
-rw-r--r--src/test/run-fail/unwind-closure.rs4
-rw-r--r--src/test/run-fail/unwind-fail.rs4
-rw-r--r--src/test/run-fail/unwind-initializer-indirect.rs4
-rw-r--r--src/test/run-fail/unwind-initializer.rs4
-rw-r--r--src/test/run-fail/unwind-interleaved.rs4
-rw-r--r--src/test/run-fail/unwind-iter.rs4
-rw-r--r--src/test/run-fail/unwind-iter2.rs4
-rw-r--r--src/test/run-fail/unwind-lambda.rs4
-rw-r--r--src/test/run-fail/unwind-misc-1.rs2
-rw-r--r--src/test/run-fail/unwind-move.rs4
-rw-r--r--src/test/run-fail/unwind-nested.rs4
-rw-r--r--src/test/run-fail/unwind-partial-box.rs4
-rw-r--r--src/test/run-fail/unwind-partial-unique.rs4
-rw-r--r--src/test/run-fail/unwind-partial-vec.rs4
-rw-r--r--src/test/run-fail/unwind-rec.rs4
-rw-r--r--src/test/run-fail/unwind-rec2.rs4
-rw-r--r--src/test/run-fail/unwind-resource-fail.rs2
-rw-r--r--src/test/run-fail/unwind-resource-fail2.rs6
-rw-r--r--src/test/run-fail/unwind-resource-fail3.rs2
-rw-r--r--src/test/run-fail/unwind-stacked.rs4
-rw-r--r--src/test/run-fail/unwind-tup.rs2
-rw-r--r--src/test/run-fail/unwind-tup2.rs2
-rw-r--r--src/test/run-fail/unwind-uninitialized.rs4
-rw-r--r--src/test/run-fail/unwind-unique.rs4
-rw-r--r--src/test/run-fail/while-body-fails.rs2
-rw-r--r--src/test/run-fail/while-fail.rs2
-rw-r--r--src/test/run-fail/zip-different-lengths.rs2
-rw-r--r--src/test/run-pass/alt-bot-2.rs2
-rw-r--r--src/test/run-pass/alt-bot.rs2
-rw-r--r--src/test/run-pass/alt-pattern-drop.rs2
-rw-r--r--src/test/run-pass/alt-pattern-lit.rs2
-rw-r--r--src/test/run-pass/alt-range.rs16
-rw-r--r--src/test/run-pass/alt-ref-binding-in-guard-3256.rs4
-rw-r--r--src/test/run-pass/alt-str.rs12
-rw-r--r--src/test/run-pass/attr-main-2.rs2
-rw-r--r--src/test/run-pass/binary-minus-without-space.rs2
-rw-r--r--src/test/run-pass/bind-by-move.rs2
-rw-r--r--src/test/run-pass/block-arg.rs4
-rw-r--r--src/test/run-pass/boxed-class-type-substitution.rs4
-rw-r--r--src/test/run-pass/class-impl-very-parameterized-trait.rs2
-rw-r--r--src/test/run-pass/cleanup-copy-mode.rs2
-rw-r--r--src/test/run-pass/conditional-compile.rs4
-rw-r--r--src/test/run-pass/const-big-enum.rs6
-rw-r--r--src/test/run-pass/const-enum-byref-self.rs2
-rw-r--r--src/test/run-pass/const-enum-byref.rs2
-rw-r--r--src/test/run-pass/const-nullary-enum.rs4
-rw-r--r--src/test/run-pass/expr-alt-box.rs4
-rw-r--r--src/test/run-pass/expr-alt-fail-all.rs2
-rw-r--r--src/test/run-pass/expr-alt-fail.rs4
-rw-r--r--src/test/run-pass/expr-alt-generic-box1.rs2
-rw-r--r--src/test/run-pass/expr-alt-generic-box2.rs2
-rw-r--r--src/test/run-pass/expr-alt-generic-unique1.rs2
-rw-r--r--src/test/run-pass/expr-alt-generic-unique2.rs2
-rw-r--r--src/test/run-pass/expr-alt-generic.rs2
-rw-r--r--src/test/run-pass/expr-alt-struct.rs2
-rw-r--r--src/test/run-pass/expr-alt-unique.rs2
-rw-r--r--src/test/run-pass/expr-if-fail-all.rs2
-rw-r--r--src/test/run-pass/expr-if-fail.rs6
-rw-r--r--src/test/run-pass/for-loop-fail.rs2
-rw-r--r--src/test/run-pass/getopts_ref.rs2
-rw-r--r--src/test/run-pass/if-bot.rs2
-rw-r--r--src/test/run-pass/if-check.rs2
-rw-r--r--src/test/run-pass/issue-1516.rs2
-rw-r--r--src/test/run-pass/issue-2311-2.rs2
-rw-r--r--src/test/run-pass/issue-2312.rs4
-rw-r--r--src/test/run-pass/issue-2718.rs16
-rw-r--r--src/test/run-pass/issue-2904.rs2
-rw-r--r--src/test/run-pass/issue-3168.rs2
-rw-r--r--src/test/run-pass/issue-3176.rs2
-rw-r--r--src/test/run-pass/issue-3895.rs2
-rw-r--r--src/test/run-pass/issue-4016.rs2
-rw-r--r--src/test/run-pass/iter-eachi.rs2
-rw-r--r--src/test/run-pass/last-use-in-block.rs2
-rw-r--r--src/test/run-pass/lots-a-fail.rs2
-rw-r--r--src/test/run-pass/macro-interpolation.rs4
-rw-r--r--src/test/run-pass/negative.rs4
-rw-r--r--src/test/run-pass/nested-alts.rs2
-rw-r--r--src/test/run-pass/nested-class.rs4
-rw-r--r--src/test/run-pass/nested-pattern.rs2
-rw-r--r--src/test/run-pass/nested-patterns.rs2
-rw-r--r--src/test/run-pass/option-unwrap.rs2
-rw-r--r--src/test/run-pass/parse-fail.rs2
-rw-r--r--src/test/run-pass/pipe-bank-proto.rs14
-rw-r--r--src/test/run-pass/pipe-detect-term.rs4
-rw-r--r--src/test/run-pass/pipe-presentation-examples.rs4
-rw-r--r--src/test/run-pass/pipe-select.rs4
-rw-r--r--src/test/run-pass/region-return-interior-of-option.rs4
-rw-r--r--src/test/run-pass/regions-bot.rs4
-rw-r--r--src/test/run-pass/ret-bang.rs2
-rw-r--r--src/test/run-pass/select-macro.rs4
-rw-r--r--src/test/run-pass/send-iloop.rs2
-rw-r--r--src/test/run-pass/size-and-align.rs2
-rw-r--r--src/test/run-pass/stat.rs2
-rw-r--r--src/test/run-pass/task-killjoin-rsrc.rs2
-rw-r--r--src/test/run-pass/task-killjoin.rs2
-rw-r--r--src/test/run-pass/terminate-in-initializer.rs4
-rw-r--r--src/test/run-pass/test-runner-hides-main.rs2
-rw-r--r--src/test/run-pass/unique-containing-tag.rs6
-rw-r--r--src/test/run-pass/unique-decl.rs2
-rw-r--r--src/test/run-pass/unique-pat.rs4
-rw-r--r--src/test/run-pass/unreachable-code-1.rs2
-rw-r--r--src/test/run-pass/unreachable-code.rs4
-rw-r--r--src/test/run-pass/unwind-box.rs2
-rw-r--r--src/test/run-pass/unwind-resource.rs2
-rw-r--r--src/test/run-pass/unwind-resource2.rs2
-rw-r--r--src/test/run-pass/unwind-unique.rs2
-rw-r--r--src/test/run-pass/use-uninit-alt2.rs2
-rw-r--r--src/test/run-pass/weird-exprs.rs2
209 files changed, 319 insertions, 319 deletions
diff --git a/src/test/auxiliary/cci_nested_lib.rs b/src/test/auxiliary/cci_nested_lib.rs
index b3557801b32..e9f799d1f75 100644
--- a/src/test/auxiliary/cci_nested_lib.rs
+++ b/src/test/auxiliary/cci_nested_lib.rs
@@ -25,7 +25,7 @@ pub fn alist_get<A: Copy, B: Copy>(lst: alist<A,B>, k: A) -> B {
     for lst.data.each |entry| {
         if eq_fn(entry.key, k) { return entry.value; }
     }
-    fail;
+    die!();
 }
 
 #[inline]
diff --git a/src/test/auxiliary/issue2378a.rs b/src/test/auxiliary/issue2378a.rs
index d7d8aed80f0..a27d7a771c5 100644
--- a/src/test/auxiliary/issue2378a.rs
+++ b/src/test/auxiliary/issue2378a.rs
@@ -14,7 +14,7 @@ impl methods<T:copy> for maybe<T> {
     fn ~[](idx: uint) -> T {
         match self {
           just(t) { t }
-          nothing { fail; }
+          nothing { die!(); }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/auxiliary/static-methods-crate.rs b/src/test/auxiliary/static-methods-crate.rs
index 798f05b8485..cda4f32ab5c 100644
--- a/src/test/auxiliary/static-methods-crate.rs
+++ b/src/test/auxiliary/static-methods-crate.rs
@@ -36,6 +36,6 @@ impl bool: read {
 pub fn read<T: read Copy>(s: ~str) -> T {
     match read::readMaybe(s) {
       Some(x) => x,
-      _ => fail ~"read failed!"
+      _ => die!(~"read failed!")
     }
 }
diff --git a/src/test/bench/graph500-bfs.rs b/src/test/bench/graph500-bfs.rs
index 9667c1d82d8..35bd280928b 100644
--- a/src/test/bench/graph500-bfs.rs
+++ b/src/test/bench/graph500-bfs.rs
@@ -212,7 +212,7 @@ fn bfs2(graph: graph, key: node_id) -> bfs_result {
         match *c {
           white => { -1i64 }
           black(parent) => { parent }
-          _ => { fail ~"Found remaining gray nodes in BFS" }
+          _ => { die!(~"Found remaining gray nodes in BFS") }
         }
     }
 }
@@ -294,7 +294,7 @@ fn pbfs(&&graph: arc::ARC<graph>, key: node_id) -> bfs_result {
         match *c {
           white => { -1i64 }
           black(parent) => { parent }
-          _ => { fail ~"Found remaining gray nodes in BFS" }
+          _ => { die!(~"Found remaining gray nodes in BFS") }
         }
     }
 }
diff --git a/src/test/bench/pingpong.rs b/src/test/bench/pingpong.rs
index c09d277e382..4a6eaad9e14 100644
--- a/src/test/bench/pingpong.rs
+++ b/src/test/bench/pingpong.rs
@@ -56,7 +56,7 @@ macro_rules! follow (
             $(Some($message($($x,)* move next)) => {
                 let $next = move next;
                 move $e })+
-                _ => { fail }
+                _ => { die!() }
         }
     );
 
@@ -67,7 +67,7 @@ macro_rules! follow (
             $(Some($message(move next)) => {
                 let $next = move next;
                 move $e })+
-                _ => { fail }
+                _ => { die!() }
         }
     )
 )
diff --git a/src/test/bench/sudoku.rs b/src/test/bench/sudoku.rs
index 06108a2fd32..f2fd95920bc 100644
--- a/src/test/bench/sudoku.rs
+++ b/src/test/bench/sudoku.rs
@@ -118,7 +118,7 @@ pub fn solve_grid(g: grid_t) {
             ptr = ptr + 1u;
         } else {
             // no: redo this field aft recoloring pred; unless there is none
-            if ptr == 0u { fail ~"No solution found for this sudoku"; }
+            if ptr == 0u { die!(~"No solution found for this sudoku"); }
             ptr = ptr - 1u;
         }
     }
diff --git a/src/test/bench/task-perf-alloc-unwind.rs b/src/test/bench/task-perf-alloc-unwind.rs
index 52826752922..20dcb079597 100644
--- a/src/test/bench/task-perf-alloc-unwind.rs
+++ b/src/test/bench/task-perf-alloc-unwind.rs
@@ -66,7 +66,7 @@ fn r(l: @nillist) -> r {
 fn recurse_or_fail(depth: int, st: Option<State>) {
     if depth == 0 {
         debug!("unwinding %.4f", precise_time_s());
-        fail;
+        die!();
     } else {
         let depth = depth - 1;
 
diff --git a/src/test/bench/task-perf-jargon-metal-smoke.rs b/src/test/bench/task-perf-jargon-metal-smoke.rs
index 3d886e561a7..415df0e9fa8 100644
--- a/src/test/bench/task-perf-jargon-metal-smoke.rs
+++ b/src/test/bench/task-perf-jargon-metal-smoke.rs
@@ -46,6 +46,6 @@ fn main() {
     let (p,c) = pipes::stream();
     child_generation(uint::from_str(args[1]).get(), move c);
     if p.try_recv().is_none() {
-        fail ~"it happened when we slumbered";
+        die!(~"it happened when we slumbered");
     }
 }
diff --git a/src/test/bench/task-perf-linked-failure.rs b/src/test/bench/task-perf-linked-failure.rs
index d2dd0eaf745..3b1a20136b6 100644
--- a/src/test/bench/task-perf-linked-failure.rs
+++ b/src/test/bench/task-perf-linked-failure.rs
@@ -77,7 +77,7 @@ fn main() {
         }
         // Grandparent group waits for middle group to be gone, then fails
         error!("Grandparent group wakes up and fails");
-        fail;
+        die!();
     };
     assert x.is_err();
 }
diff --git a/src/test/compile-fail/alt-join.rs b/src/test/compile-fail/alt-join.rs
index ff83285a0bd..1cce1dee2f7 100644
--- a/src/test/compile-fail/alt-join.rs
+++ b/src/test/compile-fail/alt-join.rs
@@ -11,7 +11,7 @@
 // a good test that we merge paths correctly in the presence of a
 // variable that's used before it's declared
 
-fn my_fail() -> ! { fail; }
+fn my_fail() -> ! { die!(); }
 
 fn main() {
     match true { false => { my_fail(); } true => { } }
diff --git a/src/test/compile-fail/bad-bang-ann.rs b/src/test/compile-fail/bad-bang-ann.rs
index 4dbe5876a97..d044d9bdc96 100644
--- a/src/test/compile-fail/bad-bang-ann.rs
+++ b/src/test/compile-fail/bad-bang-ann.rs
@@ -12,7 +12,7 @@
 // Tests that a function with a ! annotation always actually fails
 
 fn bad_bang(i: uint) -> ! {
-    if i < 0u { } else { fail; }
+    if i < 0u { } else { die!(); }
     //~^ ERROR expected `!` but found `()`
 }
 
diff --git a/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-1.rs b/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-1.rs
index 6dbd01e5191..fea31ef1738 100644
--- a/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-1.rs
+++ b/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-1.rs
@@ -20,6 +20,6 @@ fn main() {
     let x = Some(X { x: () });
     match move x {
         Some(ref _y @ move _z) => { }, //~ ERROR cannot bind by-move and by-ref in the same pattern
-        None => fail
+        None => die!()
     }
 }
diff --git a/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-2.rs b/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-2.rs
index aac69a847cf..b58fe788846 100644
--- a/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-2.rs
+++ b/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-2.rs
@@ -20,6 +20,6 @@ fn main() {
     let x = Some((X { x: () }, X { x: () }));
     match move x {
         Some((ref _y, move _z)) => { }, //~ ERROR cannot bind by-move and by-ref in the same pattern
-        None => fail
+        None => die!()
     }
 }
diff --git a/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-3.rs b/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-3.rs
index aa15364b8fc..8f9682e662c 100644
--- a/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-3.rs
+++ b/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-3.rs
@@ -22,6 +22,6 @@ fn main() {
     let x = some2(X { x: () }, X { x: () });
     match move x {
         some2(ref _y, move _z) => { }, //~ ERROR cannot bind by-move and by-ref in the same pattern
-        none2 => fail
+        none2 => die!()
     }
 }
diff --git a/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-4.rs b/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-4.rs
index 41ef2fd8e2c..6c14dd4d141 100644
--- a/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-4.rs
+++ b/src/test/compile-fail/bind-by-move-neither-can-live-while-the-other-survives-4.rs
@@ -20,6 +20,6 @@ fn main() {
     let x = Some((X { x: () }, X { x: () }));
     match move x {
         Some((move _y, ref _z)) => { }, //~ ERROR cannot bind by-move and by-ref in the same pattern
-        None => fail
+        None => die!()
     }
 }
diff --git a/src/test/compile-fail/bind-by-move-no-guards.rs b/src/test/compile-fail/bind-by-move-no-guards.rs
index a5cc7ea10d7..45b5a896f6b 100644
--- a/src/test/compile-fail/bind-by-move-no-guards.rs
+++ b/src/test/compile-fail/bind-by-move-no-guards.rs
@@ -13,8 +13,8 @@ fn main() {
     let x = Some(p);
     c.send(false);
     match move x {
-        Some(move z) if z.recv() => { fail }, //~ ERROR cannot bind by-move into a pattern guard
+        Some(move z) if z.recv() => { die!() }, //~ ERROR cannot bind by-move into a pattern guard
         Some(move z) => { assert !z.recv(); },
-        None => fail
+        None => die!()
     }
 }
diff --git a/src/test/compile-fail/bind-by-move-no-lvalues-1.rs b/src/test/compile-fail/bind-by-move-no-lvalues-1.rs
index 391f1e51180..c8b8ebecce8 100644
--- a/src/test/compile-fail/bind-by-move-no-lvalues-1.rs
+++ b/src/test/compile-fail/bind-by-move-no-lvalues-1.rs
@@ -22,6 +22,6 @@ fn main() {
     let x = Some(X { x: () });
     match x {
         Some(move _z) => { }, //~ ERROR cannot bind by-move when matching an lvalue
-        None => fail
+        None => die!()
     }
 }
diff --git a/src/test/compile-fail/bind-by-move-no-lvalues-2.rs b/src/test/compile-fail/bind-by-move-no-lvalues-2.rs
index 0c1856a334c..889ccb3fd99 100644
--- a/src/test/compile-fail/bind-by-move-no-lvalues-2.rs
+++ b/src/test/compile-fail/bind-by-move-no-lvalues-2.rs
@@ -24,6 +24,6 @@ fn main() {
     let x = Y { y: Some(X { x: () }) };
     match x.y {
         Some(move _z) => { }, //~ ERROR cannot bind by-move when matching an lvalue
-        None => fail
+        None => die!()
     }
 }
diff --git a/src/test/compile-fail/bind-by-move-no-sub-bindings.rs b/src/test/compile-fail/bind-by-move-no-sub-bindings.rs
index 8c71109f748..40196fe0817 100644
--- a/src/test/compile-fail/bind-by-move-no-sub-bindings.rs
+++ b/src/test/compile-fail/bind-by-move-no-sub-bindings.rs
@@ -20,6 +20,6 @@ fn main() {
     let x = Some(X { x: () });
     match move x {
         Some(move _y @ ref _z) => { }, //~ ERROR cannot bind by-move with sub-bindings
-        None => fail
+        None => die!()
     }
 }
diff --git a/src/test/compile-fail/borrowck-autoref-3261.rs b/src/test/compile-fail/borrowck-autoref-3261.rs
index 0aec458aef4..6ce631c68a3 100644
--- a/src/test/compile-fail/borrowck-autoref-3261.rs
+++ b/src/test/compile-fail/borrowck-autoref-3261.rs
@@ -23,7 +23,7 @@ fn main() {
                 x = X(Left((0,0))); //~ ERROR assigning to captured outer mutable variable
                 (*f)()
             },
-            _ => fail
+            _ => die!()
         }
     }
 }
diff --git a/src/test/compile-fail/borrowck-loan-local-as-both-mut-and-imm.rs b/src/test/compile-fail/borrowck-loan-local-as-both-mut-and-imm.rs
index 4459a9a384e..9aec4b49ef2 100644
--- a/src/test/compile-fail/borrowck-loan-local-as-both-mut-and-imm.rs
+++ b/src/test/compile-fail/borrowck-loan-local-as-both-mut-and-imm.rs
@@ -16,7 +16,7 @@ use core::either::{Either, Left, Right};
                 *x = Right(1.0);
                 *z
             }
-            _ => fail
+            _ => die!()
         }
     }
 
diff --git a/src/test/compile-fail/borrowck-ref-into-rvalue.rs b/src/test/compile-fail/borrowck-ref-into-rvalue.rs
index 529c17f6772..0c2903765fc 100644
--- a/src/test/compile-fail/borrowck-ref-into-rvalue.rs
+++ b/src/test/compile-fail/borrowck-ref-into-rvalue.rs
@@ -14,7 +14,7 @@ fn main() {
         Some(ref m) => {
             msg = m;
         },  
-        None => { fail }
+        None => { die!() }
     }   
     io::println(*msg);
 }
diff --git a/src/test/compile-fail/closure-that-fails.rs b/src/test/compile-fail/closure-that-fails.rs
index 00bfa7a2233..a76649fb990 100644
--- a/src/test/compile-fail/closure-that-fails.rs
+++ b/src/test/compile-fail/closure-that-fails.rs
@@ -2,6 +2,6 @@ fn foo(f: fn() -> !) {}
 
 fn main() {
     // Type inference didn't use to be able to handle this:
-    foo(|| fail);
+    foo(|| die!());
     foo(|| 22); //~ ERROR mismatched types
 }
diff --git a/src/test/compile-fail/deref-non-pointer.rs b/src/test/compile-fail/deref-non-pointer.rs
index 6dacfc03f21..ef84b11d5fc 100644
--- a/src/test/compile-fail/deref-non-pointer.rs
+++ b/src/test/compile-fail/deref-non-pointer.rs
@@ -11,6 +11,6 @@
 // error-pattern:cannot be dereferenced
 fn main() {
   match *1 {
-      _ => { fail; }
+      _ => { die!(); }
   }
-}
\ No newline at end of file
+}
diff --git a/src/test/compile-fail/fail-expr.rs b/src/test/compile-fail/fail-expr.rs
index ea446ada029..6d4f5ba2f4c 100644
--- a/src/test/compile-fail/fail-expr.rs
+++ b/src/test/compile-fail/fail-expr.rs
@@ -10,4 +10,4 @@
 
 // error-pattern:mismatched types
 
-fn main() { fail 5; }
+fn main() { die!(5); }
diff --git a/src/test/compile-fail/fail-simple.rs b/src/test/compile-fail/fail-simple.rs
index 580f02ba391..eab577f713b 100644
--- a/src/test/compile-fail/fail-simple.rs
+++ b/src/test/compile-fail/fail-simple.rs
@@ -12,5 +12,5 @@
 
 // error-pattern:unexpected token
 fn main() {
-  fail @ ;
+  die!(@);
 }
diff --git a/src/test/compile-fail/fail-type-err.rs b/src/test/compile-fail/fail-type-err.rs
index 90989141b8d..8e32c086962 100644
--- a/src/test/compile-fail/fail-type-err.rs
+++ b/src/test/compile-fail/fail-type-err.rs
@@ -9,4 +9,4 @@
 // except according to those terms.
 
 // error-pattern:expected `~str` but found `~[int]`
-fn main() { fail ~[0i]; }
+fn main() { die!(~[0i]); }
diff --git a/src/test/compile-fail/issue-2149.rs b/src/test/compile-fail/issue-2149.rs
index f29afabf556..3df9dc8300a 100644
--- a/src/test/compile-fail/issue-2149.rs
+++ b/src/test/compile-fail/issue-2149.rs
@@ -14,7 +14,7 @@ trait vec_monad<A> {
 
 impl<A> ~[A]: vec_monad<A> {
     fn bind<B>(f: fn(A) -> ~[B]) {
-        let mut r = fail;
+        let mut r = die!();
         for self.each |elt| { r += f(*elt); }
         //~^ WARNING unreachable expression
         //~^^ ERROR the type of this value must be known
diff --git a/src/test/compile-fail/issue-2150.rs b/src/test/compile-fail/issue-2150.rs
index 44b4384e853..51883aa9734 100644
--- a/src/test/compile-fail/issue-2150.rs
+++ b/src/test/compile-fail/issue-2150.rs
@@ -9,10 +9,10 @@
 // except according to those terms.
 
 fn fail_len(v: ~[const int]) -> uint {
-    let mut i = fail;
+    let mut i = die!();
     for v.each |x| { i += 1u; }
     //~^ WARNING unreachable statement
     //~^^ ERROR the type of this value must be known
     return i;
 }
-fn main() {}
\ No newline at end of file
+fn main() {}
diff --git a/src/test/compile-fail/issue-2330.rs b/src/test/compile-fail/issue-2330.rs
index f9649b9db92..abaeb37e6c2 100644
--- a/src/test/compile-fail/issue-2330.rs
+++ b/src/test/compile-fail/issue-2330.rs
@@ -16,7 +16,7 @@ trait channel<T> {
 
 // `chan` is not a trait, it's an enum
 impl int: chan { //~ ERROR can only implement trait types
-    fn send(v: int) { fail }
+    fn send(v: int) { die!() }
 }
 
 fn main() {
diff --git a/src/test/compile-fail/issue-2354.rs b/src/test/compile-fail/issue-2354.rs
index 2505859a737..37945839de4 100644
--- a/src/test/compile-fail/issue-2354.rs
+++ b/src/test/compile-fail/issue-2354.rs
@@ -16,8 +16,8 @@
  */
 fn foo() { //~ ERROR this open brace is not closed
   match Some(x) {
-      Some(y) { fail; }
-      None    { fail; }
+      Some(y) { die!(); }
+      None    { die!(); }
 }
 
 fn bar() {
diff --git a/src/test/compile-fail/issue-2611-3.rs b/src/test/compile-fail/issue-2611-3.rs
index ce337589a13..7624e33e9ad 100644
--- a/src/test/compile-fail/issue-2611-3.rs
+++ b/src/test/compile-fail/issue-2611-3.rs
@@ -24,7 +24,7 @@ struct E {
 }
 
 impl E: A {
-  fn b<F:Copy, G>(_x: F) -> F { fail } //~ ERROR in method `b`, type parameter 0 has 1 bound, but
+  fn b<F:Copy, G>(_x: F) -> F { die!() } //~ ERROR in method `b`, type parameter 0 has 1 bound, but
 }
 
-fn main() {}
\ No newline at end of file
+fn main() {}
diff --git a/src/test/compile-fail/issue-2611-4.rs b/src/test/compile-fail/issue-2611-4.rs
index a92b6c76d98..1e923974d33 100644
--- a/src/test/compile-fail/issue-2611-4.rs
+++ b/src/test/compile-fail/issue-2611-4.rs
@@ -21,7 +21,7 @@ struct E {
 }
 
 impl E: A {
-  fn b<F:Copy Const, G>(_x: F) -> F { fail } //~ ERROR in method `b`, type parameter 0 has 2 bounds, but
+  fn b<F:Copy Const, G>(_x: F) -> F { die!() } //~ ERROR in method `b`, type parameter 0 has 2 bounds, but
 }
 
-fn main() {}
\ No newline at end of file
+fn main() {}
diff --git a/src/test/compile-fail/issue-2611-5.rs b/src/test/compile-fail/issue-2611-5.rs
index 5ab882d1c36..e868d022d57 100644
--- a/src/test/compile-fail/issue-2611-5.rs
+++ b/src/test/compile-fail/issue-2611-5.rs
@@ -22,7 +22,7 @@ struct E {
 
 impl E: A {
   // n.b. The error message is awful -- see #3404
-  fn b<F:Copy, G>(_x: G) -> G { fail } //~ ERROR method `b` has an incompatible type
+  fn b<F:Copy, G>(_x: G) -> G { die!() } //~ ERROR method `b` has an incompatible type
 }
 
-fn main() {}
\ No newline at end of file
+fn main() {}
diff --git a/src/test/compile-fail/issue-2817.rs b/src/test/compile-fail/issue-2817.rs
index e9c38d17838..45b72634293 100644
--- a/src/test/compile-fail/issue-2817.rs
+++ b/src/test/compile-fail/issue-2817.rs
@@ -8,11 +8,11 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-fn uuid() -> uint { fail; }
+fn uuid() -> uint { die!(); }
 
-fn from_str(s: ~str) -> uint { fail; }
-fn to_str(u: uint) -> ~str { fail; }
-fn uuid_random() -> uint { fail; }
+fn from_str(s: ~str) -> uint { die!(); }
+fn to_str(u: uint) -> ~str { die!(); }
+fn uuid_random() -> uint { die!(); }
 
 fn main() {
     do uint::range(0, 100000) |_i| { //~ ERROR Do-block body must return bool, but
@@ -22,4 +22,4 @@ fn main() {
     do uint::range(0, 100000) |_i| { //~ ERROR mismatched types
         ~"str"
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/compile-fail/issue-3021.rs b/src/test/compile-fail/issue-3021.rs
index 620b2a84ba8..cde878e122a 100644
--- a/src/test/compile-fail/issue-3021.rs
+++ b/src/test/compile-fail/issue-3021.rs
@@ -26,7 +26,7 @@ fn siphash(k0 : u64) -> siphash {
            //~^ ERROR unresolved name: k0
         }
     }
-    fail;
+    die!();
 }
 
 fn main() {}
diff --git a/src/test/compile-fail/issue-3601.rs b/src/test/compile-fail/issue-3601.rs
index 3e54aaa287c..74136d95573 100644
--- a/src/test/compile-fail/issue-3601.rs
+++ b/src/test/compile-fail/issue-3601.rs
@@ -37,6 +37,6 @@ fn main() {
         ~Element(ed) => match ed.kind {
             ~HTMLImageElement(d) if d.image.is_some() => { true }
         },
-        _ => fail ~"WAT" //~ ERROR wat
+        _ => die!(~"WAT") //~ ERROR wat
     };
 }
diff --git a/src/test/compile-fail/issue-3668.rs b/src/test/compile-fail/issue-3668.rs
index 60306a1aa6a..5fc692ed3ec 100644
--- a/src/test/compile-fail/issue-3668.rs
+++ b/src/test/compile-fail/issue-3668.rs
@@ -16,7 +16,7 @@ trait PTrait {
 impl P: PTrait {
    fn getChildOption() -> Option<@P> {
        const childVal: @P = self.child.get(); //~ ERROR attempt to use a non-constant value in a constant
-       fail;
+       die!();
    }
 }
 
diff --git a/src/test/compile-fail/issue-897-2.rs b/src/test/compile-fail/issue-897-2.rs
index 61afdab405d..e910ea1fa57 100644
--- a/src/test/compile-fail/issue-897-2.rs
+++ b/src/test/compile-fail/issue-897-2.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-fn g() -> ! { fail; }
+fn g() -> ! { die!(); }
 fn f() -> ! {
     return 42i; //~ ERROR expected `!` but found `int`
     g(); //~ WARNING unreachable statement
diff --git a/src/test/compile-fail/issue-897.rs b/src/test/compile-fail/issue-897.rs
index 1ed7034be77..f5f4b376a99 100644
--- a/src/test/compile-fail/issue-897.rs
+++ b/src/test/compile-fail/issue-897.rs
@@ -10,6 +10,6 @@
 
 fn f() -> ! {
     return 42i; //~ ERROR expected `!` but found `int`
-    fail; //~ WARNING unreachable statement
+    die!(); //~ WARNING unreachable statement
 }
 fn main() { }
diff --git a/src/test/compile-fail/liveness-use-after-send.rs b/src/test/compile-fail/liveness-use-after-send.rs
index 2746c5a304b..fcdf9438e3d 100644
--- a/src/test/compile-fail/liveness-use-after-send.rs
+++ b/src/test/compile-fail/liveness-use-after-send.rs
@@ -11,7 +11,7 @@
 fn send<T: Owned>(ch: _chan<T>, -data: T) {
     log(debug, ch);
     log(debug, data);
-    fail;
+    die!();
 }
 
 enum _chan<T> = int;
@@ -23,4 +23,4 @@ fn test00_start(ch: _chan<~int>, message: ~int, _count: ~int) {
     log(debug, message); //~ ERROR use of moved value: `message`
 }
 
-fn main() { fail; }
+fn main() { die!(); }
diff --git a/src/test/compile-fail/non-exhaustive-match-nested.rs b/src/test/compile-fail/non-exhaustive-match-nested.rs
index 01e7e40be55..b8db996ebfa 100644
--- a/src/test/compile-fail/non-exhaustive-match-nested.rs
+++ b/src/test/compile-fail/non-exhaustive-match-nested.rs
@@ -16,8 +16,8 @@ enum u { c, d }
 fn main() {
   let x = a(c);
   match x {
-      a(d) => { fail ~"hello"; }
-      b => { fail ~"goodbye"; }
+      a(d) => { die!(~"hello"); }
+      b => { die!(~"goodbye"); }
     }
 }
 
diff --git a/src/test/compile-fail/noncopyable-match-pattern.rs b/src/test/compile-fail/noncopyable-match-pattern.rs
index 27dbfdf4319..9b2d129a1a8 100644
--- a/src/test/compile-fail/noncopyable-match-pattern.rs
+++ b/src/test/compile-fail/noncopyable-match-pattern.rs
@@ -14,6 +14,6 @@ fn main() {
         Some(copy z) => { //~ ERROR copying a noncopyable value
             do z.with |b| { assert !*b; }
         }
-        None => fail
+        None => die!()
     }
 }
diff --git a/src/test/compile-fail/not-enough-arguments.rs b/src/test/compile-fail/not-enough-arguments.rs
index d79889c7157..ef4f0f4fb53 100644
--- a/src/test/compile-fail/not-enough-arguments.rs
+++ b/src/test/compile-fail/not-enough-arguments.rs
@@ -13,7 +13,7 @@
 // unrelated errors.
 
 fn foo(a: int, b: int, c: int, d:int) {
-  fail;
+  die!();
 }
 
 fn main() {
diff --git a/src/test/compile-fail/pattern-tyvar-2.rs b/src/test/compile-fail/pattern-tyvar-2.rs
index 37efa3174bc..7942a38caa0 100644
--- a/src/test/compile-fail/pattern-tyvar-2.rs
+++ b/src/test/compile-fail/pattern-tyvar-2.rs
@@ -17,6 +17,6 @@ use option::Some;
 
 enum bar { t1((), Option<~[int]>), t2, }
 
-fn foo(t: bar) -> int { match t { t1(_, Some(x)) => { return x * 3; } _ => { fail; } } }
+fn foo(t: bar) -> int { match t { t1(_, Some(x)) => { return x * 3; } _ => { die!(); } } }
 
 fn main() { }
diff --git a/src/test/compile-fail/pattern-tyvar.rs b/src/test/compile-fail/pattern-tyvar.rs
index 66cf814fe2c..3b4200bb4be 100644
--- a/src/test/compile-fail/pattern-tyvar.rs
+++ b/src/test/compile-fail/pattern-tyvar.rs
@@ -21,7 +21,7 @@ fn foo(t: bar) {
       t1(_, Some::<int>(x)) => {
         log(debug, x);
       }
-      _ => { fail; }
+      _ => { die!(); }
     }
 }
 
diff --git a/src/test/compile-fail/qquote-1.rs b/src/test/compile-fail/qquote-1.rs
index a343158337d..2fc487d13d2 100644
--- a/src/test/compile-fail/qquote-1.rs
+++ b/src/test/compile-fail/qquote-1.rs
@@ -63,6 +63,6 @@ fn main() {
 }
 
 fn check_pp<T>(expr: T, f: fn(pprust::ps, T), expect: str) {
-    fail;
+    die!();
 }
 
diff --git a/src/test/compile-fail/qquote-2.rs b/src/test/compile-fail/qquote-2.rs
index b7e33f99e3b..43b1d287739 100644
--- a/src/test/compile-fail/qquote-2.rs
+++ b/src/test/compile-fail/qquote-2.rs
@@ -58,6 +58,6 @@ fn main() {
 }
 
 fn check_pp<T>(expr: T, f: fn(pprust::ps, T), expect: str) {
-    fail;
+    die!();
 }
 
diff --git a/src/test/compile-fail/regions-fn-bound.rs b/src/test/compile-fail/regions-fn-bound.rs
index a878e87c7a1..95a5222d14c 100644
--- a/src/test/compile-fail/regions-fn-bound.rs
+++ b/src/test/compile-fail/regions-fn-bound.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-fn of<T>() -> @fn(T) { fail; }
-fn subtype<T>(x: @fn(T)) { fail; }
+fn of<T>() -> @fn(T) { die!(); }
+fn subtype<T>(x: @fn(T)) { die!(); }
 
 fn test_fn<T>(_x: &x/T, _y: &y/T, _z: &z/T) {
     // Here, x, y, and z are free.  Other letters
diff --git a/src/test/compile-fail/regions-fn-subtyping.rs b/src/test/compile-fail/regions-fn-subtyping.rs
index 6163e6ee744..3ead89b2082 100644
--- a/src/test/compile-fail/regions-fn-subtyping.rs
+++ b/src/test/compile-fail/regions-fn-subtyping.rs
@@ -8,8 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-fn of<T>() -> @fn(T) { fail; }
-fn subtype<T>(x: @fn(T)) { fail; }
+fn of<T>() -> @fn(T) { die!(); }
+fn subtype<T>(x: @fn(T)) { die!(); }
 
 fn test_fn<T>(_x: &x/T, _y: &y/T, _z: &z/T) {
     // Here, x, y, and z are free.  Other letters
@@ -54,4 +54,4 @@ fn test_fn<T>(_x: &x/T, _y: &y/T, _z: &z/T) {
         of::<fn(&a/T) -> @fn(&a/T)>());
 }
 
-fn main() {}
\ No newline at end of file
+fn main() {}
diff --git a/src/test/compile-fail/tag-that-dare-not-speak-its-name.rs b/src/test/compile-fail/tag-that-dare-not-speak-its-name.rs
index 8f7d8734a6a..c6cd05b7a65 100644
--- a/src/test/compile-fail/tag-that-dare-not-speak-its-name.rs
+++ b/src/test/compile-fail/tag-that-dare-not-speak-its-name.rs
@@ -16,7 +16,7 @@
 extern mod core;
 
 fn last<T>(v: ~[const &T]) -> core::Option<T> {
-    fail;
+    die!();
 }
 
 fn main() {
diff --git a/src/test/compile-fail/tag-type-args.rs b/src/test/compile-fail/tag-type-args.rs
index dd29c6bf659..ea40d8bd077 100644
--- a/src/test/compile-fail/tag-type-args.rs
+++ b/src/test/compile-fail/tag-type-args.rs
@@ -14,4 +14,4 @@ enum quux<T> { bar }
 
 fn foo(c: quux) { assert (false); }
 
-fn main() { fail; }
+fn main() { die!(); }
diff --git a/src/test/compile-fail/warn-foreign-int-types.rs b/src/test/compile-fail/warn-foreign-int-types.rs
index 1c312de7726..801e3e71030 100644
--- a/src/test/compile-fail/warn-foreign-int-types.rs
+++ b/src/test/compile-fail/warn-foreign-int-types.rs
@@ -16,5 +16,5 @@ extern mod xx {
 
 fn main() {
   // let it fail to verify warning message
-  fail
+  die!()
 }
diff --git a/src/test/pretty/issue-929.rs b/src/test/pretty/issue-929.rs
index 8d4f86adc53..7b24d256cb0 100644
--- a/src/test/pretty/issue-929.rs
+++ b/src/test/pretty/issue-929.rs
@@ -8,6 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-fn f() { if (1 == fail) { } else { } }
+fn f() { if (1 == die!()) { } else { } }
 
-fn main() { }
\ No newline at end of file
+fn main() { }
diff --git a/src/test/run-fail/alt-bot-fail.rs b/src/test/run-fail/alt-bot-fail.rs
index 4f2372326fa..ac465d81b7e 100644
--- a/src/test/run-fail/alt-bot-fail.rs
+++ b/src/test/run-fail/alt-bot-fail.rs
@@ -14,6 +14,6 @@ fn foo(s: ~str) { }
 
 fn main() {
     let i =
-        match Some::<int>(3) { None::<int> => { fail } Some::<int>(_) => { fail } };
+        match Some::<int>(3) { None::<int> => { die!() } Some::<int>(_) => { die!() } };
     foo(i);
 }
diff --git a/src/test/run-fail/alt-disc-bot.rs b/src/test/run-fail/alt-disc-bot.rs
index 6380a82de9a..c74e16f4222 100644
--- a/src/test/run-fail/alt-disc-bot.rs
+++ b/src/test/run-fail/alt-disc-bot.rs
@@ -9,6 +9,6 @@
 // except according to those terms.
 
 // error-pattern:quux
-fn f() -> ! { fail ~"quux" }
+fn f() -> ! { die!(~"quux") }
 fn g() -> int { match f() { true => { 1 } false => { 0 } } }
 fn main() { g(); }
diff --git a/src/test/run-fail/alt-wildcards.rs b/src/test/run-fail/alt-wildcards.rs
index 8fee5a90dd4..e30a73601c6 100644
--- a/src/test/run-fail/alt-wildcards.rs
+++ b/src/test/run-fail/alt-wildcards.rs
@@ -11,9 +11,9 @@
 // error-pattern:squirrelcupcake
 fn cmp() -> int {
     match (option::Some('a'), option::None::<char>) {
-        (option::Some(_), _) => { fail ~"squirrelcupcake"; }
-        (_, option::Some(_)) => { fail; }
-        _                    => { fail ~"wat"; }
+        (option::Some(_), _) => { die!(~"squirrelcupcake"); }
+        (_, option::Some(_)) => { die!(); }
+        _                    => { die!(~"wat"); }
     }
 }
 
diff --git a/src/test/run-fail/args-fail.rs b/src/test/run-fail/args-fail.rs
index 5829f5ce646..c3675109948 100644
--- a/src/test/run-fail/args-fail.rs
+++ b/src/test/run-fail/args-fail.rs
@@ -9,6 +9,6 @@
 // except according to those terms.
 
 // error-pattern:meep
-fn f(a: int, b: int, c: @int) { fail ~"moop"; }
+fn f(a: int, b: int, c: @int) { die!(~"moop"); }
 
-fn main() { f(1, fail ~"meep", @42); }
+fn main() { f(1, die!(~"meep"), @42); }
diff --git a/src/test/run-fail/binop-fail-2.rs b/src/test/run-fail/binop-fail-2.rs
index 7acfdc31051..1e553d1089d 100644
--- a/src/test/run-fail/binop-fail-2.rs
+++ b/src/test/run-fail/binop-fail-2.rs
@@ -9,5 +9,5 @@
 // except according to those terms.
 
 // error-pattern:quux
-fn my_err(s: ~str) -> ! { log(error, s); fail ~"quux"; }
+fn my_err(s: ~str) -> ! { log(error, s); die!(~"quux"); }
 fn main() { 3u == my_err(~"bye"); }
diff --git a/src/test/run-fail/binop-fail.rs b/src/test/run-fail/binop-fail.rs
index 7acfdc31051..1e553d1089d 100644
--- a/src/test/run-fail/binop-fail.rs
+++ b/src/test/run-fail/binop-fail.rs
@@ -9,5 +9,5 @@
 // except according to those terms.
 
 // error-pattern:quux
-fn my_err(s: ~str) -> ! { log(error, s); fail ~"quux"; }
+fn my_err(s: ~str) -> ! { log(error, s); die!(~"quux"); }
 fn main() { 3u == my_err(~"bye"); }
diff --git a/src/test/run-fail/bug-811.rs b/src/test/run-fail/bug-811.rs
index 31158df4185..f16e838aaf5 100644
--- a/src/test/run-fail/bug-811.rs
+++ b/src/test/run-fail/bug-811.rs
@@ -16,6 +16,6 @@ type port_id = int;
 
 enum chan_t<T> = {task: task_id, port: port_id};
 
-fn send<T: Owned>(ch: chan_t<T>, data: T) { fail; }
+fn send<T: Owned>(ch: chan_t<T>, data: T) { die!(); }
 
-fn main() { fail ~"quux"; }
+fn main() { die!(~"quux"); }
diff --git a/src/test/run-fail/doublefail.rs b/src/test/run-fail/doublefail.rs
index 559983022fe..38e29d02fdd 100644
--- a/src/test/run-fail/doublefail.rs
+++ b/src/test/run-fail/doublefail.rs
@@ -10,6 +10,6 @@
 
 //error-pattern:One
 fn main() {
-    fail ~"One";
-    fail ~"Two";
-}
\ No newline at end of file
+    die!(~"One");
+    die!(~"Two");
+}
diff --git a/src/test/run-fail/explicit-fail-msg.rs b/src/test/run-fail/explicit-fail-msg.rs
index c88eb7296aa..ac5eaefe32b 100644
--- a/src/test/run-fail/explicit-fail-msg.rs
+++ b/src/test/run-fail/explicit-fail-msg.rs
@@ -10,5 +10,5 @@
 
 // error-pattern:wooooo
 fn main() {
-    let mut a = 1; if 1 == 1 { a = 2; } fail ~"woooo" + ~"o";
+    let mut a = 1; if 1 == 1 { a = 2; } die!(~"woooo" + ~"o");
 }
diff --git a/src/test/run-fail/explicit-fail.rs b/src/test/run-fail/explicit-fail.rs
index fe4a1e82061..acc5ef91668 100644
--- a/src/test/run-fail/explicit-fail.rs
+++ b/src/test/run-fail/explicit-fail.rs
@@ -12,4 +12,4 @@
 
 
 // error-pattern:explicit
-fn main() { fail; }
+fn main() { die!(); }
diff --git a/src/test/run-fail/expr-alt-fail-fn.rs b/src/test/run-fail/expr-alt-fail-fn.rs
index 366831b74d8..6cb0f4f3260 100644
--- a/src/test/run-fail/expr-alt-fail-fn.rs
+++ b/src/test/run-fail/expr-alt-fail-fn.rs
@@ -12,7 +12,7 @@
 
 
 // error-pattern:explicit failure
-fn f() -> ! { fail }
+fn f() -> ! { die!() }
 
 fn g() -> int { let x = match true { true => { f() } false => { 10 } }; return x; }
 
diff --git a/src/test/run-fail/expr-alt-fail.rs b/src/test/run-fail/expr-alt-fail.rs
index 9eae7440086..b70382955e3 100644
--- a/src/test/run-fail/expr-alt-fail.rs
+++ b/src/test/run-fail/expr-alt-fail.rs
@@ -12,4 +12,4 @@
 
 
 // error-pattern:explicit failure
-fn main() { let x = match true { false => { 0 } true => { fail } }; }
+fn main() { let x = match true { false => { 0 } true => { die!() } }; }
diff --git a/src/test/run-fail/expr-fn-fail.rs b/src/test/run-fail/expr-fn-fail.rs
index 6dacdf0b466..2b840a71b8b 100644
--- a/src/test/run-fail/expr-fn-fail.rs
+++ b/src/test/run-fail/expr-fn-fail.rs
@@ -12,6 +12,6 @@
 
 
 // error-pattern:explicit failure
-fn f() -> ! { fail }
+fn f() -> ! { die!() }
 
 fn main() { f(); }
diff --git a/src/test/run-fail/expr-if-fail-fn.rs b/src/test/run-fail/expr-if-fail-fn.rs
index 2f59f8c8c0a..cd6efa7302a 100644
--- a/src/test/run-fail/expr-if-fail-fn.rs
+++ b/src/test/run-fail/expr-if-fail-fn.rs
@@ -12,7 +12,7 @@
 
 
 // error-pattern:explicit failure
-fn f() -> ! { fail }
+fn f() -> ! { die!() }
 
 fn g() -> int { let x = if true { f() } else { 10 }; return x; }
 
diff --git a/src/test/run-fail/expr-if-fail.rs b/src/test/run-fail/expr-if-fail.rs
index 8b1ff8baf03..d39a0271e64 100644
--- a/src/test/run-fail/expr-if-fail.rs
+++ b/src/test/run-fail/expr-if-fail.rs
@@ -12,4 +12,4 @@
 
 
 // error-pattern:explicit failure
-fn main() { let x = if false { 0 } else if true { fail } else { 10 }; }
+fn main() { let x = if false { 0 } else if true { die!() } else { 10 }; }
diff --git a/src/test/run-fail/extern-fail.rs b/src/test/run-fail/extern-fail.rs
index f84f428bd4e..7f59d499fd3 100644
--- a/src/test/run-fail/extern-fail.rs
+++ b/src/test/run-fail/extern-fail.rs
@@ -37,7 +37,7 @@ fn main() {
         do task::spawn {
             let result = count(5u);
             debug!("result = %?", result);
-            fail;
+            die!();
         };
     }
 }
diff --git a/src/test/run-fail/fail-main.rs b/src/test/run-fail/fail-main.rs
index f21b765f56f..2755f8e47a2 100644
--- a/src/test/run-fail/fail-main.rs
+++ b/src/test/run-fail/fail-main.rs
@@ -10,4 +10,4 @@
 
 // error-pattern:moop
 extern mod std;
-fn main() { fail ~"moop"; }
+fn main() { die!(~"moop"); }
diff --git a/src/test/run-fail/fmt-fail.rs b/src/test/run-fail/fmt-fail.rs
index 47878edbf63..3e6f8a433c6 100644
--- a/src/test/run-fail/fmt-fail.rs
+++ b/src/test/run-fail/fmt-fail.rs
@@ -11,4 +11,4 @@
 // error-pattern:meh
 extern mod std;
 
-fn main() { let str_var: ~str = ~"meh"; fail fmt!("%s", str_var); }
+fn main() { let str_var: ~str = ~"meh"; die!(fmt!("%s", str_var)); }
diff --git a/src/test/run-fail/for-each-loop-fail.rs b/src/test/run-fail/for-each-loop-fail.rs
index 5a2ad5acc6e..bbae1b1739d 100644
--- a/src/test/run-fail/for-each-loop-fail.rs
+++ b/src/test/run-fail/for-each-loop-fail.rs
@@ -10,4 +10,4 @@
 
 // error-pattern:moop
 extern mod std;
-fn main() { for uint::range(0u, 10u) |_i| { fail ~"moop"; } }
+fn main() { for uint::range(0u, 10u) |_i| { die!(~"moop"); } }
diff --git a/src/test/run-fail/if-check-fail.rs b/src/test/run-fail/if-check-fail.rs
index 1a2baf902f2..f0bc250f1cb 100644
--- a/src/test/run-fail/if-check-fail.rs
+++ b/src/test/run-fail/if-check-fail.rs
@@ -19,7 +19,7 @@ fn foo(x: uint) {
     if even(x) {
         log(debug, x);
     } else {
-        fail ~"Number is odd";
+        die!(~"Number is odd");
     }
 }
 
diff --git a/src/test/run-fail/if-cond-bot.rs b/src/test/run-fail/if-cond-bot.rs
index 7aa0568896d..1212b550cfb 100644
--- a/src/test/run-fail/if-cond-bot.rs
+++ b/src/test/run-fail/if-cond-bot.rs
@@ -9,5 +9,5 @@
 // except according to those terms.
 
 // error-pattern:quux
-fn my_err(s: ~str) -> ! { log(error, s); fail ~"quux"; }
+fn my_err(s: ~str) -> ! { log(error, s); die!(~"quux"); }
 fn main() { if my_err(~"bye") { } }
diff --git a/src/test/run-fail/issue-2156.rs b/src/test/run-fail/issue-2156.rs
index 90e32e532fe..deb8192fc3b 100644
--- a/src/test/run-fail/issue-2156.rs
+++ b/src/test/run-fail/issue-2156.rs
@@ -15,6 +15,6 @@ use io::ReaderUtil;
 
 fn main() {
     do io::with_str_reader(~"") |rdr| {
-        match rdr.read_char() { '=' => { } _ => { fail } }
+        match rdr.read_char() { '=' => { } _ => { die!() } }
     }
 }
diff --git a/src/test/run-fail/issue-2272.rs b/src/test/run-fail/issue-2272.rs
index c81ef07f5d7..de7475b3303 100644
--- a/src/test/run-fail/issue-2272.rs
+++ b/src/test/run-fail/issue-2272.rs
@@ -22,5 +22,5 @@ fn main() {
         },
         a: ~0
     };
-    fail;
-}
\ No newline at end of file
+    die!();
+}
diff --git a/src/test/run-fail/issue-3029.rs b/src/test/run-fail/issue-3029.rs
index 1998cc0be91..ca4774cd53e 100644
--- a/src/test/run-fail/issue-3029.rs
+++ b/src/test/run-fail/issue-3029.rs
@@ -11,7 +11,7 @@
 // error-pattern:so long
 fn main() {
     let x = ~[], y = ~[3];
-    fail ~"so long";
+    die!(~"so long");
     x += y;
     ~"good" + ~"bye";
 }
diff --git a/src/test/run-fail/linked-failure2.rs b/src/test/run-fail/linked-failure2.rs
index dc571af636e..f020cb7eafd 100644
--- a/src/test/run-fail/linked-failure2.rs
+++ b/src/test/run-fail/linked-failure2.rs
@@ -12,7 +12,7 @@
 
 // error-pattern:fail
 
-fn child() { fail; }
+fn child() { die!(); }
 
 fn main() {
     let (p, _c) = pipes::stream::<()>();
diff --git a/src/test/run-fail/linked-failure3.rs b/src/test/run-fail/linked-failure3.rs
index b9f785a7958..78e3798399c 100644
--- a/src/test/run-fail/linked-failure3.rs
+++ b/src/test/run-fail/linked-failure3.rs
@@ -12,7 +12,7 @@
 
 // error-pattern:fail
 
-fn grandchild() { fail ~"grandchild dies"; }
+fn grandchild() { die!(~"grandchild dies"); }
 
 fn child() {
     let (p, _c) = pipes::stream::<int>();
diff --git a/src/test/run-fail/morestack1.rs b/src/test/run-fail/morestack1.rs
index d6d14ba9d84..63a7cc7ed89 100644
--- a/src/test/run-fail/morestack1.rs
+++ b/src/test/run-fail/morestack1.rs
@@ -8,15 +8,15 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// error-pattern:explicit failure
+// error-pattern:fail
 fn getbig(i: int) {
     if i != 0 {
         getbig(i - 1);
     } else {
-        fail;
+        die!();
     }
 }
 
 fn main() {
     getbig(100000);
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/morestack2.rs b/src/test/run-fail/morestack2.rs
index 2b8a8b13eac..58957aac203 100644
--- a/src/test/run-fail/morestack2.rs
+++ b/src/test/run-fail/morestack2.rs
@@ -27,7 +27,7 @@ fn getbig_call_c_and_fail(i: int) {
     } else {
         unsafe {
             rustrt::last_os_error();
-            fail;
+            die!();
         }
     }
 }
diff --git a/src/test/run-fail/morestack3.rs b/src/test/run-fail/morestack3.rs
index c2cf3ca6e6a..01296a82969 100644
--- a/src/test/run-fail/morestack3.rs
+++ b/src/test/run-fail/morestack3.rs
@@ -19,7 +19,7 @@ fn getbig_and_fail(&&i: int) {
     if i != 0 {
         getbig_and_fail(i - 1);
     } else {
-        fail;
+        die!();
     }
 }
 
diff --git a/src/test/run-fail/morestack4.rs b/src/test/run-fail/morestack4.rs
index 38a88284a00..e8b6785d1e8 100644
--- a/src/test/run-fail/morestack4.rs
+++ b/src/test/run-fail/morestack4.rs
@@ -19,7 +19,7 @@ fn getbig_and_fail(&&i: int) {
     if i != 0 {
         getbig_and_fail(i - 1);
     } else {
-        fail;
+        die!();
     }
 }
 
diff --git a/src/test/run-fail/rhs-type.rs b/src/test/run-fail/rhs-type.rs
index 54a3e9d5a97..32d8f84292b 100644
--- a/src/test/run-fail/rhs-type.rs
+++ b/src/test/run-fail/rhs-type.rs
@@ -14,4 +14,4 @@
 
 struct T { t: ~str }
 
-fn main() { let pth = fail ~"bye"; let rs: T = T {t: pth}; }
+fn main() { let pth = die!(~"bye"); let rs: T = T {t: pth}; }
diff --git a/src/test/run-fail/rt-log-trunc.rs b/src/test/run-fail/rt-log-trunc.rs
index c3b7b69bdeb..a27404e46fe 100644
--- a/src/test/run-fail/rt-log-trunc.rs
+++ b/src/test/run-fail/rt-log-trunc.rs
@@ -12,7 +12,7 @@
 // error-pattern:[...]
 
 fn main() {
-    fail ~"\
+    die!(~"\
           aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
           aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
           aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
@@ -70,5 +70,5 @@ fn main() {
           aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
           aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
           aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
-          ";
+          ");
 }
diff --git a/src/test/run-fail/rt-set-exit-status-fail.rs b/src/test/run-fail/rt-set-exit-status-fail.rs
index a0023675bc2..de4b062d700 100644
--- a/src/test/run-fail/rt-set-exit-status-fail.rs
+++ b/src/test/run-fail/rt-set-exit-status-fail.rs
@@ -16,5 +16,5 @@ fn main() {
     // normally. In this case we're going to fail, so instead of of
     // returning 50 the process will return the typical rt failure code.
     os::set_exit_status(50);
-    fail;
-}
\ No newline at end of file
+    die!();
+}
diff --git a/src/test/run-fail/rt-set-exit-status-fail2.rs b/src/test/run-fail/rt-set-exit-status-fail2.rs
index ddbe6a0a408..ece9f5fdc51 100644
--- a/src/test/run-fail/rt-set-exit-status-fail2.rs
+++ b/src/test/run-fail/rt-set-exit-status-fail2.rs
@@ -34,5 +34,5 @@ fn main() {
     do task::spawn {
       let i = r(5);
     };
-    fail;
+    die!();
 }
diff --git a/src/test/run-fail/run-unexported-tests.rs b/src/test/run-fail/run-unexported-tests.rs
index 8d229a191b7..48adac55586 100644
--- a/src/test/run-fail/run-unexported-tests.rs
+++ b/src/test/run-fail/run-unexported-tests.rs
@@ -17,5 +17,5 @@ mod m {
     pub fn exported() { }
 
     #[test]
-    fn unexported() { fail ~"runned an unexported test"; }
+    fn unexported() { die!(~"runned an unexported test"); }
 }
diff --git a/src/test/run-fail/spawnfail.rs b/src/test/run-fail/spawnfail.rs
index 5915ca46d72..e7bfe1b67c5 100644
--- a/src/test/run-fail/spawnfail.rs
+++ b/src/test/run-fail/spawnfail.rs
@@ -15,7 +15,7 @@ extern mod std;
 // We don't want to see any invalid reads
 fn main() {
     fn f() {
-        fail;
+        die!();
     }
     task::spawn(|| f() );
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/task-comm-recv-block.rs b/src/test/run-fail/task-comm-recv-block.rs
index 9c8ec249255..fc108a4fbdd 100644
--- a/src/test/run-fail/task-comm-recv-block.rs
+++ b/src/test/run-fail/task-comm-recv-block.rs
@@ -12,7 +12,7 @@
 
 fn goodfail() {
     task::yield();
-    fail ~"goodfail";
+    die!(~"goodfail");
 }
 
 fn main() {
diff --git a/src/test/run-fail/unwind-alt.rs b/src/test/run-fail/unwind-alt.rs
index 9e6729e41bb..559c7c2d89d 100644
--- a/src/test/run-fail/unwind-alt.rs
+++ b/src/test/run-fail/unwind-alt.rs
@@ -15,10 +15,10 @@ fn test_box() {
 }
 fn test_str() {
   let res = match false { true => { ~"happy" },
-     _ => fail ~"non-exhaustive match failure" };
+     _ => die!(~"non-exhaustive match failure") };
   assert res == ~"happy";
 }
 fn main() {
     test_box();
     test_str();
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-box-fn-unique.rs b/src/test/run-fail/unwind-box-fn-unique.rs
index fc304317c93..ca6d154f4e6 100644
--- a/src/test/run-fail/unwind-box-fn-unique.rs
+++ b/src/test/run-fail/unwind-box-fn-unique.rs
@@ -11,7 +11,7 @@
 // error-pattern:fail
 
 fn failfn() {
-    fail;
+    die!();
 }
 
 fn main() {
diff --git a/src/test/run-fail/unwind-box-fn.rs b/src/test/run-fail/unwind-box-fn.rs
index 6cca9332779..94a03142bec 100644
--- a/src/test/run-fail/unwind-box-fn.rs
+++ b/src/test/run-fail/unwind-box-fn.rs
@@ -11,7 +11,7 @@
 // error-pattern:fail
 
 fn failfn() {
-    fail;
+    die!();
 }
 
 fn main() {
diff --git a/src/test/run-fail/unwind-box-res.rs b/src/test/run-fail/unwind-box-res.rs
index b38651b3165..13b1bc36ba9 100644
--- a/src/test/run-fail/unwind-box-res.rs
+++ b/src/test/run-fail/unwind-box-res.rs
@@ -11,7 +11,7 @@
 // error-pattern:fail
 
 fn failfn() {
-    fail;
+    die!();
 }
 
 struct r {
diff --git a/src/test/run-fail/unwind-box-str.rs b/src/test/run-fail/unwind-box-str.rs
index 98043f09f23..1469a56a6d4 100644
--- a/src/test/run-fail/unwind-box-str.rs
+++ b/src/test/run-fail/unwind-box-str.rs
@@ -11,11 +11,11 @@
 // error-pattern:fail
 
 fn failfn() {
-    fail;
+    die!();
 }
 
 fn main() {
     let x = @~"hi";
     failfn();
     log(error, x);
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-box-trait.rs b/src/test/run-fail/unwind-box-trait.rs
index 3bae24b3721..d41e0f19324 100644
--- a/src/test/run-fail/unwind-box-trait.rs
+++ b/src/test/run-fail/unwind-box-trait.rs
@@ -11,7 +11,7 @@
 // error-pattern:fail
 
 fn failfn() {
-    fail;
+    die!();
 }
 
 trait i {
@@ -26,4 +26,4 @@ fn main() {
     let x = ~0 as i;
     failfn();
     log(error, x);
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-box-unique-unique.rs b/src/test/run-fail/unwind-box-unique-unique.rs
index 19a6c0685e8..8f24d2922f9 100644
--- a/src/test/run-fail/unwind-box-unique-unique.rs
+++ b/src/test/run-fail/unwind-box-unique-unique.rs
@@ -11,11 +11,11 @@
 // error-pattern:fail
 
 fn failfn() {
-    fail;
+    die!();
 }
 
 fn main() {
     let x = @~~0;
     failfn();
     log(error, x);
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-box-unique.rs b/src/test/run-fail/unwind-box-unique.rs
index 85ed6090deb..8a1dcef5ca5 100644
--- a/src/test/run-fail/unwind-box-unique.rs
+++ b/src/test/run-fail/unwind-box-unique.rs
@@ -11,11 +11,11 @@
 // error-pattern:fail
 
 fn failfn() {
-    fail;
+    die!();
 }
 
 fn main() {
     let x = @~0;
     failfn();
     log(error, x);
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-box-vec.rs b/src/test/run-fail/unwind-box-vec.rs
index 14fb50e27f2..e2559e66eae 100644
--- a/src/test/run-fail/unwind-box-vec.rs
+++ b/src/test/run-fail/unwind-box-vec.rs
@@ -11,11 +11,11 @@
 // error-pattern:fail
 
 fn failfn() {
-    fail;
+    die!();
 }
 
 fn main() {
     let x = @~[0, 1, 2, 3, 4, 5];
     failfn();
     log(error, x);
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-box.rs b/src/test/run-fail/unwind-box.rs
index 473adaee9e5..02761fef976 100644
--- a/src/test/run-fail/unwind-box.rs
+++ b/src/test/run-fail/unwind-box.rs
@@ -11,10 +11,10 @@
 // error-pattern:fail
 
 fn failfn() {
-    fail;
+    die!();
 }
 
 fn main() {
     @0;
     failfn();
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-closure.rs b/src/test/run-fail/unwind-closure.rs
index 5d0f6bb3e04..f6a3fa1ab67 100644
--- a/src/test/run-fail/unwind-closure.rs
+++ b/src/test/run-fail/unwind-closure.rs
@@ -11,11 +11,11 @@
 // error-pattern:fail
 
 fn f(a: @int) {
-    fail;
+    die!();
 }
 
 fn main() {
     let b = @0;
     let g : fn@() = |move b|f(b);
     g();
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-fail.rs b/src/test/run-fail/unwind-fail.rs
index b6f7507ac90..5c776b5fd7a 100644
--- a/src/test/run-fail/unwind-fail.rs
+++ b/src/test/run-fail/unwind-fail.rs
@@ -12,5 +12,5 @@
 
 fn main() {
     @0;
-    fail;
-}
\ No newline at end of file
+    die!();
+}
diff --git a/src/test/run-fail/unwind-initializer-indirect.rs b/src/test/run-fail/unwind-initializer-indirect.rs
index 54672f9d560..69106602ec8 100644
--- a/src/test/run-fail/unwind-initializer-indirect.rs
+++ b/src/test/run-fail/unwind-initializer-indirect.rs
@@ -10,8 +10,8 @@
 
 // error-pattern:fail
 
-fn f() -> @int { fail; }
+fn f() -> @int { die!(); }
 
 fn main() {
     let a: @int = f();
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-initializer.rs b/src/test/run-fail/unwind-initializer.rs
index e3c9e3bd764..7047a77a6e7 100644
--- a/src/test/run-fail/unwind-initializer.rs
+++ b/src/test/run-fail/unwind-initializer.rs
@@ -12,6 +12,6 @@
 
 fn main() {
     let a: @int = {
-        fail;
+        die!();
     };
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-interleaved.rs b/src/test/run-fail/unwind-interleaved.rs
index 29ec85ab51b..4dac04d379d 100644
--- a/src/test/run-fail/unwind-interleaved.rs
+++ b/src/test/run-fail/unwind-interleaved.rs
@@ -12,11 +12,11 @@
 
 fn a() { }
 
-fn b() { fail; }
+fn b() { die!(); }
 
 fn main() {
     let x = ~[0];
     a();
     let y = ~[0];
     b();
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-iter.rs b/src/test/run-fail/unwind-iter.rs
index 2280ca4e05c..7c5782a1813 100644
--- a/src/test/run-fail/unwind-iter.rs
+++ b/src/test/run-fail/unwind-iter.rs
@@ -11,11 +11,11 @@
 // error-pattern:fail
 
 fn x(it: fn(int)) {
-    fail;
+    die!();
     it(0);
 }
 
 fn main() {
     let a = @0;
     x(|_i| { } );
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-iter2.rs b/src/test/run-fail/unwind-iter2.rs
index 781b9300794..8621209fd5d 100644
--- a/src/test/run-fail/unwind-iter2.rs
+++ b/src/test/run-fail/unwind-iter2.rs
@@ -16,5 +16,5 @@ fn x(it: fn(int)) {
 }
 
 fn main() {
-    x(|_x| fail );
-}
\ No newline at end of file
+    x(|_x| die!() );
+}
diff --git a/src/test/run-fail/unwind-lambda.rs b/src/test/run-fail/unwind-lambda.rs
index f2a95728237..89d6dd4970e 100644
--- a/src/test/run-fail/unwind-lambda.rs
+++ b/src/test/run-fail/unwind-lambda.rs
@@ -21,8 +21,8 @@ fn main() {
         let cheese = copy cheese;
         let f = fn@() {
             let chew = mush + cheese;
-            fail ~"so yummy"
+            die!(~"so yummy")
         };
         f();
     });
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-misc-1.rs b/src/test/run-fail/unwind-misc-1.rs
index 2ba118bdd6f..116918f044c 100644
--- a/src/test/run-fail/unwind-misc-1.rs
+++ b/src/test/run-fail/unwind-misc-1.rs
@@ -22,7 +22,7 @@ fn main() {
         arr += ~[@~"key stuff"];
         map.insert(copy arr, arr + ~[@~"value stuff"]);
         if arr.len() == 5 {
-            fail;
+            die!();
         }
     }
 }
diff --git a/src/test/run-fail/unwind-move.rs b/src/test/run-fail/unwind-move.rs
index a3b458c2a36..2419edf650c 100644
--- a/src/test/run-fail/unwind-move.rs
+++ b/src/test/run-fail/unwind-move.rs
@@ -10,10 +10,10 @@
 
 // error-pattern:fail
 fn f(-_a: @int) {
-    fail;
+    die!();
 }
 
 fn main() {
     let a = @0;
     f(move a);
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-nested.rs b/src/test/run-fail/unwind-nested.rs
index 43c1e4b75c5..450c982eb3f 100644
--- a/src/test/run-fail/unwind-nested.rs
+++ b/src/test/run-fail/unwind-nested.rs
@@ -15,7 +15,7 @@ fn main() {
     {
         let b = @0;
         {
-            fail;
+            die!();
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-partial-box.rs b/src/test/run-fail/unwind-partial-box.rs
index 67039e7381c..7a5c81eed7a 100644
--- a/src/test/run-fail/unwind-partial-box.rs
+++ b/src/test/run-fail/unwind-partial-box.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-fn f() -> ~[int] { fail; }
+fn f() -> ~[int] { die!(); }
 
 // Voodoo. In unwind-alt we had to do this to trigger the bug. Might
 // have been to do with memory allocation patterns.
@@ -25,4 +25,4 @@ fn partial() {
 fn main() {
     prime();
     partial();
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-partial-unique.rs b/src/test/run-fail/unwind-partial-unique.rs
index db18964fa9b..12f0a7b4785 100644
--- a/src/test/run-fail/unwind-partial-unique.rs
+++ b/src/test/run-fail/unwind-partial-unique.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-fn f() -> ~[int] { fail; }
+fn f() -> ~[int] { die!(); }
 
 // Voodoo. In unwind-alt we had to do this to trigger the bug. Might
 // have been to do with memory allocation patterns.
@@ -25,4 +25,4 @@ fn partial() {
 fn main() {
     prime();
     partial();
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-partial-vec.rs b/src/test/run-fail/unwind-partial-vec.rs
index b6ea8caaa6a..87df161cfd3 100644
--- a/src/test/run-fail/unwind-partial-vec.rs
+++ b/src/test/run-fail/unwind-partial-vec.rs
@@ -10,7 +10,7 @@
 
 // error-pattern:fail
 
-fn f() -> ~[int] { fail; }
+fn f() -> ~[int] { die!(); }
 
 // Voodoo. In unwind-alt we had to do this to trigger the bug. Might
 // have been to do with memory allocation patterns.
@@ -25,4 +25,4 @@ fn partial() {
 fn main() {
     prime();
     partial();
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-rec.rs b/src/test/run-fail/unwind-rec.rs
index 200d511db54..324783893f9 100644
--- a/src/test/run-fail/unwind-rec.rs
+++ b/src/test/run-fail/unwind-rec.rs
@@ -11,7 +11,7 @@
 // error-pattern:fail
 
 fn build() -> ~[int] {
-    fail;
+    die!();
 }
 
 struct Blk { node: ~[int] }
@@ -20,4 +20,4 @@ fn main() {
     let blk = Blk {
         node: build()
     };
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-rec2.rs b/src/test/run-fail/unwind-rec2.rs
index bf35abdafaf..0e2c279e98a 100644
--- a/src/test/run-fail/unwind-rec2.rs
+++ b/src/test/run-fail/unwind-rec2.rs
@@ -15,7 +15,7 @@ fn build1() -> ~[int] {
 }
 
 fn build2() -> ~[int] {
-    fail;
+    die!();
 }
 
 struct Blk { node: ~[int], span: ~[int] }
@@ -25,4 +25,4 @@ fn main() {
         node: build1(),
         span: build2()
     };
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-resource-fail.rs b/src/test/run-fail/unwind-resource-fail.rs
index a11c99dfb07..a5ff8302495 100644
--- a/src/test/run-fail/unwind-resource-fail.rs
+++ b/src/test/run-fail/unwind-resource-fail.rs
@@ -12,7 +12,7 @@
 
 struct r {
     i: int,
-    drop { fail ~"squirrel" }
+    drop { die!(~"squirrel") }
 }
 
 fn r(i: int) -> r { r { i: i } }
diff --git a/src/test/run-fail/unwind-resource-fail2.rs b/src/test/run-fail/unwind-resource-fail2.rs
index d435990eb0e..69575e6e13a 100644
--- a/src/test/run-fail/unwind-resource-fail2.rs
+++ b/src/test/run-fail/unwind-resource-fail2.rs
@@ -13,7 +13,7 @@
 
 struct r {
     i: int,
-    drop { fail ~"wombat" }
+    drop { die!(~"wombat") }
 }
 
 fn r(i: int) -> r { r { i: i } }
@@ -21,5 +21,5 @@ fn r(i: int) -> r { r { i: i } }
 fn main() {
     @0;
     let r = move r(0);
-    fail;
-}
\ No newline at end of file
+    die!();
+}
diff --git a/src/test/run-fail/unwind-resource-fail3.rs b/src/test/run-fail/unwind-resource-fail3.rs
index 5c66e415582..10adfdf1fa3 100644
--- a/src/test/run-fail/unwind-resource-fail3.rs
+++ b/src/test/run-fail/unwind-resource-fail3.rs
@@ -19,7 +19,7 @@ fn faily_box(i: @int) -> faily_box { faily_box { i: i } }
 
 impl faily_box : Drop {
     fn finalize(&self) {
-        fail ~"quux";
+        die!(~"quux");
     }
 }
 
diff --git a/src/test/run-fail/unwind-stacked.rs b/src/test/run-fail/unwind-stacked.rs
index 730bbf2c196..42a4a7e376d 100644
--- a/src/test/run-fail/unwind-stacked.rs
+++ b/src/test/run-fail/unwind-stacked.rs
@@ -12,7 +12,7 @@
 
 fn f() {
     let a = @0;
-    fail;
+    die!();
 }
 
 fn g() {
@@ -23,4 +23,4 @@ fn g() {
 fn main() {
     let a = @0;
     g();
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-tup.rs b/src/test/run-fail/unwind-tup.rs
index 207adcec9f1..6cd234ae770 100644
--- a/src/test/run-fail/unwind-tup.rs
+++ b/src/test/run-fail/unwind-tup.rs
@@ -11,7 +11,7 @@
 // error-pattern:fail
 
 fn fold_local() -> @~[int]{
-    fail;
+    die!();
 }
 
 fn main() {
diff --git a/src/test/run-fail/unwind-tup2.rs b/src/test/run-fail/unwind-tup2.rs
index fa9ccbfcc14..83ed7efcd44 100644
--- a/src/test/run-fail/unwind-tup2.rs
+++ b/src/test/run-fail/unwind-tup2.rs
@@ -15,7 +15,7 @@ fn fold_local() -> @~[int]{
 }
 
 fn fold_remote() -> @~[int]{
-    fail;
+    die!();
 }
 
 fn main() {
diff --git a/src/test/run-fail/unwind-uninitialized.rs b/src/test/run-fail/unwind-uninitialized.rs
index 04f42c497da..56321e33829 100644
--- a/src/test/run-fail/unwind-uninitialized.rs
+++ b/src/test/run-fail/unwind-uninitialized.rs
@@ -11,10 +11,10 @@
 // error-pattern:fail
 
 fn f() {
-    fail;
+    die!();
 }
 
 fn main() {
     f();
     let a = @0;
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/unwind-unique.rs b/src/test/run-fail/unwind-unique.rs
index 0c65cce9d0f..e9de0c4520a 100644
--- a/src/test/run-fail/unwind-unique.rs
+++ b/src/test/run-fail/unwind-unique.rs
@@ -11,10 +11,10 @@
 // error-pattern:fail
 
 fn failfn() {
-    fail;
+    die!();
 }
 
 fn main() {
     ~0;
     failfn();
-}
\ No newline at end of file
+}
diff --git a/src/test/run-fail/while-body-fails.rs b/src/test/run-fail/while-body-fails.rs
index 67a3bcbeeec..de483d6dc47 100644
--- a/src/test/run-fail/while-body-fails.rs
+++ b/src/test/run-fail/while-body-fails.rs
@@ -9,4 +9,4 @@
 // except according to those terms.
 
 // error-pattern:quux
-fn main() { let x: int = { while true { fail ~"quux"; } ; 8 } ; }
+fn main() { let x: int = { while true { die!(~"quux"); } ; 8 } ; }
diff --git a/src/test/run-fail/while-fail.rs b/src/test/run-fail/while-fail.rs
index c09fd4a9a48..951737aa9b2 100644
--- a/src/test/run-fail/while-fail.rs
+++ b/src/test/run-fail/while-fail.rs
@@ -10,5 +10,5 @@
 
 // error-pattern:giraffe
 fn main() {
-    fail { while true { fail ~"giraffe"}; ~"clandestine" };
+    die!({ while true { die!(~"giraffe")}; ~"clandestine" });
 }
diff --git a/src/test/run-fail/zip-different-lengths.rs b/src/test/run-fail/zip-different-lengths.rs
index 8c3c6f52f10..2a27be56bec 100644
--- a/src/test/run-fail/zip-different-lengths.rs
+++ b/src/test/run-fail/zip-different-lengths.rs
@@ -37,5 +37,5 @@ fn main() {
 
     assert same_length(chars, ints);
     let ps = zip(chars, ints);
-    fail ~"the impossible happened";
+    die!(~"the impossible happened");
 }
diff --git a/src/test/run-pass/alt-bot-2.rs b/src/test/run-pass/alt-bot-2.rs
index cd943a7963b..ffa0b5e0cf1 100644
--- a/src/test/run-pass/alt-bot-2.rs
+++ b/src/test/run-pass/alt-bot-2.rs
@@ -9,5 +9,5 @@
 // except according to those terms.
 
 // n.b. This was only ever failing with optimization disabled.
-fn a() -> int { match return 1 { 2 => 3, _ => fail } }
+fn a() -> int { match return 1 { 2 => 3, _ => die!() } }
 fn main() { a(); }
diff --git a/src/test/run-pass/alt-bot.rs b/src/test/run-pass/alt-bot.rs
index 73597704b4c..1e5e541a1de 100644
--- a/src/test/run-pass/alt-bot.rs
+++ b/src/test/run-pass/alt-bot.rs
@@ -11,6 +11,6 @@
 
 fn main() {
     let i: int =
-        match Some::<int>(3) { None::<int> => { fail } Some::<int>(_) => { 5 } };
+        match Some::<int>(3) { None::<int> => { die!() } Some::<int>(_) => { 5 } };
     log(debug, i);
 }
diff --git a/src/test/run-pass/alt-pattern-drop.rs b/src/test/run-pass/alt-pattern-drop.rs
index ccc65cdab75..02ebcdc34e4 100644
--- a/src/test/run-pass/alt-pattern-drop.rs
+++ b/src/test/run-pass/alt-pattern-drop.rs
@@ -22,7 +22,7 @@ fn foo(s: @int) {
         log(debug, y); // ref up then down
 
       }
-      _ => { debug!("?"); fail; }
+      _ => { debug!("?"); die!(); }
     }
     log(debug, ::core::sys::refcount(s));
     assert (::core::sys::refcount(s) == count + 1u);
diff --git a/src/test/run-pass/alt-pattern-lit.rs b/src/test/run-pass/alt-pattern-lit.rs
index 57a71563c58..89db197e116 100644
--- a/src/test/run-pass/alt-pattern-lit.rs
+++ b/src/test/run-pass/alt-pattern-lit.rs
@@ -14,7 +14,7 @@ fn altlit(f: int) -> int {
     match f {
       10 => { debug!("case 10"); return 20; }
       11 => { debug!("case 11"); return 22; }
-      _  => fail ~"the impossible happened"
+      _  => die!(~"the impossible happened")
     }
 }
 
diff --git a/src/test/run-pass/alt-range.rs b/src/test/run-pass/alt-range.rs
index 92a906d85ee..6eec537b723 100644
--- a/src/test/run-pass/alt-range.rs
+++ b/src/test/run-pass/alt-range.rs
@@ -11,31 +11,31 @@
 fn main() {
     match 5u {
       1u..5u => {}
-      _ => fail ~"should match range",
+      _ => die!(~"should match range"),
     }
     match 5u {
-      6u..7u => fail ~"shouldn't match range",
+      6u..7u => die!(~"shouldn't match range"),
       _ => {}
     }
     match 5u {
-      1u => fail ~"should match non-first range",
+      1u => die!(~"should match non-first range"),
       2u..6u => {}
-      _ => fail ~"math is broken"
+      _ => die!(~"math is broken")
     }
     match 'c' {
       'a'..'z' => {}
-      _ => fail ~"should suppport char ranges"
+      _ => die!(~"should suppport char ranges")
     }
     match -3 {
       -7..5 => {}
-      _ => fail ~"should match signed range"
+      _ => die!(~"should match signed range")
     }
     match 3.0 {
       1.0..5.0 => {}
-      _ => fail ~"should match float range"
+      _ => die!(~"should match float range")
     }
     match -1.5 {
       -3.6..3.6 => {}
-      _ => fail ~"should match negative float range"
+      _ => die!(~"should match negative float range")
     }
 }
diff --git a/src/test/run-pass/alt-ref-binding-in-guard-3256.rs b/src/test/run-pass/alt-ref-binding-in-guard-3256.rs
index c3903abefba..f04706a0e3c 100644
--- a/src/test/run-pass/alt-ref-binding-in-guard-3256.rs
+++ b/src/test/run-pass/alt-ref-binding-in-guard-3256.rs
@@ -14,6 +14,6 @@ fn main() {
         Some(ref z) if z.with(|b| *b) => {
             do z.with |b| { assert *b; }
         },
-        _ => fail
+        _ => die!()
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/run-pass/alt-str.rs b/src/test/run-pass/alt-str.rs
index 81506caf524..6801bda1f35 100644
--- a/src/test/run-pass/alt-str.rs
+++ b/src/test/run-pass/alt-str.rs
@@ -11,21 +11,21 @@
 // Issue #53
 
 fn main() {
-    match ~"test" { ~"not-test" => fail, ~"test" => (), _ => fail }
+    match ~"test" { ~"not-test" => die!(), ~"test" => (), _ => die!() }
 
     enum t { tag1(~str), tag2, }
 
 
     match tag1(~"test") {
-      tag2 => fail,
-      tag1(~"not-test") => fail,
+      tag2 => die!(),
+      tag1(~"not-test") => die!(),
       tag1(~"test") => (),
-      _ => fail
+      _ => die!()
     }
 
-    let x = match ~"a" { ~"a" => 1, ~"b" => 2, _ => fail };
+    let x = match ~"a" { ~"a" => 1, ~"b" => 2, _ => die!() };
     assert (x == 1);
 
-    match ~"a" { ~"a" => { } ~"b" => { }, _ => fail }
+    match ~"a" { ~"a" => { } ~"b" => { }, _ => die!() }
 
 }
diff --git a/src/test/run-pass/attr-main-2.rs b/src/test/run-pass/attr-main-2.rs
index 2978a72cfa9..eaf8fd5ceaa 100644
--- a/src/test/run-pass/attr-main-2.rs
+++ b/src/test/run-pass/attr-main-2.rs
@@ -11,7 +11,7 @@
 // xfail-fast
 
 fn main() {
-    fail
+    die!()
 }
 
 #[main]
diff --git a/src/test/run-pass/binary-minus-without-space.rs b/src/test/run-pass/binary-minus-without-space.rs
index 5c6c7f12b37..03fa6779a56 100644
--- a/src/test/run-pass/binary-minus-without-space.rs
+++ b/src/test/run-pass/binary-minus-without-space.rs
@@ -11,6 +11,6 @@
 // Check that issue #954 stays fixed
 
 fn main() {
-    match -1 { -1 => {}, _ => fail ~"wat" }
+    match -1 { -1 => {}, _ => die!(~"wat") }
     assert 1-1 == 0;
 }
diff --git a/src/test/run-pass/bind-by-move.rs b/src/test/run-pass/bind-by-move.rs
index eda015cce18..ca11d8e7a33 100644
--- a/src/test/run-pass/bind-by-move.rs
+++ b/src/test/run-pass/bind-by-move.rs
@@ -19,6 +19,6 @@ fn main() {
     let x = Some(p);
     match move x {
         Some(move z) => { dispose(z); },
-        None => fail
+        None => die!()
     }
 }
diff --git a/src/test/run-pass/block-arg.rs b/src/test/run-pass/block-arg.rs
index 45594f0329b..309c387264c 100644
--- a/src/test/run-pass/block-arg.rs
+++ b/src/test/run-pass/block-arg.rs
@@ -35,14 +35,14 @@ fn main() {
         assert false;
     }
     match do vec::all(v) |e| { float::is_negative(*e) } {
-        true => { fail ~"incorrect answer."; }
+        true => { die!(~"incorrect answer."); }
         false => { }
     }
     match 3 {
       _ if do vec::any(v) |e| { float::is_negative(*e) } => {
       }
       _ => {
-        fail ~"wrong answer.";
+        die!(~"wrong answer.");
       }
     }
 
diff --git a/src/test/run-pass/boxed-class-type-substitution.rs b/src/test/run-pass/boxed-class-type-substitution.rs
index 7e1ab1004b1..7eeb1b3ab76 100644
--- a/src/test/run-pass/boxed-class-type-substitution.rs
+++ b/src/test/run-pass/boxed-class-type-substitution.rs
@@ -15,7 +15,7 @@ type Tree<T> = {
     mut parent: Option<T>,
 };
 
-fn empty<T>() -> Tree<T> { fail }
+fn empty<T>() -> Tree<T> { die!() }
 
 struct Box {
     tree: Tree<@Box>
@@ -31,4 +31,4 @@ enum layout_data = {
     mut box: Option<@Box>
 };
 
-fn main() { }
\ No newline at end of file
+fn main() { }
diff --git a/src/test/run-pass/class-impl-very-parameterized-trait.rs b/src/test/run-pass/class-impl-very-parameterized-trait.rs
index bccb42c4938..9a6d137d3e5 100644
--- a/src/test/run-pass/class-impl-very-parameterized-trait.rs
+++ b/src/test/run-pass/class-impl-very-parameterized-trait.rs
@@ -62,7 +62,7 @@ impl<T: Copy> cat<T> : StdMap<int, T> {
 
   pure fn get(+k:int) -> T { match self.find(k) {
       Some(v) => { v }
-      None    => { fail ~"epic fail"; }
+      None    => { die!(~"epic fail"); }
     }
   }
   pure fn find(+k:int) -> Option<T> { if k <= self.meows {
diff --git a/src/test/run-pass/cleanup-copy-mode.rs b/src/test/run-pass/cleanup-copy-mode.rs
index be1f80ceb2d..cabd8ee298d 100644
--- a/src/test/run-pass/cleanup-copy-mode.rs
+++ b/src/test/run-pass/cleanup-copy-mode.rs
@@ -10,7 +10,7 @@
 
 // xfail-win32
 fn adder(+x: @int, +y: @int) -> int { return *x + *y; }
-fn failer() -> @int { fail; }
+fn failer() -> @int { die!(); }
 fn main() {
     assert(result::is_err(&task::try(|| {
         adder(@2, failer()); ()
diff --git a/src/test/run-pass/conditional-compile.rs b/src/test/run-pass/conditional-compile.rs
index 404a58e1a4b..826a85804f7 100644
--- a/src/test/run-pass/conditional-compile.rs
+++ b/src/test/run-pass/conditional-compile.rs
@@ -81,7 +81,7 @@ mod m {
 // Since the bogus configuration isn't defined main will just be
 // parsed, but nothing further will be done with it
 #[cfg(bogus)]
-fn main() { fail }
+fn main() { die!() }
 
 fn main() {
     // Exercise some of the configured items in ways that wouldn't be possible
@@ -95,7 +95,7 @@ fn main() {
 
 fn test_in_fn_ctxt() {
     #[cfg(bogus)]
-    fn f() { fail }
+    fn f() { die!() }
     fn f() { }
     f();
 
diff --git a/src/test/run-pass/const-big-enum.rs b/src/test/run-pass/const-big-enum.rs
index aa977f17e69..44fe0692681 100644
--- a/src/test/run-pass/const-big-enum.rs
+++ b/src/test/run-pass/const-big-enum.rs
@@ -19,18 +19,18 @@ const X: Foo = Baz;
 fn main() {
     match X {
         Baz => {}
-        _ => fail
+        _ => die!()
     }
     match Y {
         Bar(s) => assert(s == 2654435769),
-        _ => fail
+        _ => die!()
     }
     match Z {
         Quux(d,h) => {
             assert(d == 0x123456789abcdef0);
             assert(h == 0x1234);
         }
-        _ => fail
+        _ => die!()
     }
 }
 
diff --git a/src/test/run-pass/const-enum-byref-self.rs b/src/test/run-pass/const-enum-byref-self.rs
index cd939bc14d4..848e6b20521 100644
--- a/src/test/run-pass/const-enum-byref-self.rs
+++ b/src/test/run-pass/const-enum-byref-self.rs
@@ -15,7 +15,7 @@ impl E {
     fn method(&self) {
         match *self {
             V => {}
-            VV(*) => fail
+            VV(*) => die!()
         }
     }
 }
diff --git a/src/test/run-pass/const-enum-byref.rs b/src/test/run-pass/const-enum-byref.rs
index 8ee9e79670b..83e27009959 100644
--- a/src/test/run-pass/const-enum-byref.rs
+++ b/src/test/run-pass/const-enum-byref.rs
@@ -14,7 +14,7 @@ const C: E = V;
 fn f(a: &E) {
     match *a {
         V => {}
-        VV(*) => fail
+        VV(*) => die!()
     }
 }
 
diff --git a/src/test/run-pass/const-nullary-enum.rs b/src/test/run-pass/const-nullary-enum.rs
index 098305bbe35..0f6363b4908 100644
--- a/src/test/run-pass/const-nullary-enum.rs
+++ b/src/test/run-pass/const-nullary-enum.rs
@@ -19,11 +19,11 @@ const X: Foo = Bar;
 fn main() {
     match X {
         Bar => {}
-        Baz | Boo => fail
+        Baz | Boo => die!()
     }
     match Y {
         Baz => {}
-        Bar | Boo => fail
+        Bar | Boo => die!()
     }
 }
 
diff --git a/src/test/run-pass/expr-alt-box.rs b/src/test/run-pass/expr-alt-box.rs
index 581614d49af..82b51cd5fae 100644
--- a/src/test/run-pass/expr-alt-box.rs
+++ b/src/test/run-pass/expr-alt-box.rs
@@ -15,13 +15,13 @@
 
 // Tests for match as expressions resulting in boxed types
 fn test_box() {
-    let res = match true { true => { @100 } _ => fail ~"wat" };
+    let res = match true { true => { @100 } _ => die!(~"wat") };
     assert (*res == 100);
 }
 
 fn test_str() {
     let res = match true { true => { ~"happy" },
-                         _ => fail ~"not happy at all" };
+                         _ => die!(~"not happy at all") };
     assert (res == ~"happy");
 }
 
diff --git a/src/test/run-pass/expr-alt-fail-all.rs b/src/test/run-pass/expr-alt-fail-all.rs
index aaaa68a6078..160fcfe2245 100644
--- a/src/test/run-pass/expr-alt-fail-all.rs
+++ b/src/test/run-pass/expr-alt-fail-all.rs
@@ -17,6 +17,6 @@ fn main() {
     let x =
         match true {
           true => { 10 }
-          false => { match true { true => { fail } false => { fail } } }
+          false => { match true { true => { die!() } false => { die!() } } }
         };
 }
diff --git a/src/test/run-pass/expr-alt-fail.rs b/src/test/run-pass/expr-alt-fail.rs
index b180dd66690..7666e4b90e5 100644
--- a/src/test/run-pass/expr-alt-fail.rs
+++ b/src/test/run-pass/expr-alt-fail.rs
@@ -9,12 +9,12 @@
 // except according to those terms.
 
 fn test_simple() {
-    let r = match true { true => { true } false => { fail } };
+    let r = match true { true => { true } false => { die!() } };
     assert (r == true);
 }
 
 fn test_box() {
-    let r = match true { true => { ~[10] } false => { fail } };
+    let r = match true { true => { ~[10] } false => { die!() } };
     assert (r[0] == 10);
 }
 
diff --git a/src/test/run-pass/expr-alt-generic-box1.rs b/src/test/run-pass/expr-alt-generic-box1.rs
index 3609de3c1cc..f23107a7db8 100644
--- a/src/test/run-pass/expr-alt-generic-box1.rs
+++ b/src/test/run-pass/expr-alt-generic-box1.rs
@@ -15,7 +15,7 @@
 type compare<T> = fn@(@T, @T) -> bool;
 
 fn test_generic<T>(expected: @T, eq: compare<T>) {
-    let actual: @T = match true { true => { expected }, _ => fail };
+    let actual: @T = match true { true => { expected }, _ => die!() };
     assert (eq(expected, actual));
 }
 
diff --git a/src/test/run-pass/expr-alt-generic-box2.rs b/src/test/run-pass/expr-alt-generic-box2.rs
index 012b090601f..18e5f39a81f 100644
--- a/src/test/run-pass/expr-alt-generic-box2.rs
+++ b/src/test/run-pass/expr-alt-generic-box2.rs
@@ -16,7 +16,7 @@
 type compare<T> = fn@(T, T) -> bool;
 
 fn test_generic<T: Copy>(expected: T, eq: compare<T>) {
-    let actual: T = match true { true => { expected }, _ => fail ~"wat" };
+    let actual: T = match true { true => { expected }, _ => die!(~"wat") };
     assert (eq(expected, actual));
 }
 
diff --git a/src/test/run-pass/expr-alt-generic-unique1.rs b/src/test/run-pass/expr-alt-generic-unique1.rs
index 06812e00205..04f2a8ec02b 100644
--- a/src/test/run-pass/expr-alt-generic-unique1.rs
+++ b/src/test/run-pass/expr-alt-generic-unique1.rs
@@ -16,7 +16,7 @@ type compare<T> = fn@(~T, ~T) -> bool;
 fn test_generic<T: Copy>(expected: ~T, eq: compare<T>) {
     let actual: ~T = match true {
         true => { copy expected },
-        _ => fail ~"wat"
+        _ => die!(~"wat")
     };
     assert (eq(expected, actual));
 }
diff --git a/src/test/run-pass/expr-alt-generic-unique2.rs b/src/test/run-pass/expr-alt-generic-unique2.rs
index eb611b4bd05..7263540102d 100644
--- a/src/test/run-pass/expr-alt-generic-unique2.rs
+++ b/src/test/run-pass/expr-alt-generic-unique2.rs
@@ -18,7 +18,7 @@ type compare<T> = fn@(T, T) -> bool;
 fn test_generic<T: Copy>(expected: T, eq: compare<T>) {
     let actual: T = match true {
         true => copy expected,
-        _ => fail ~"wat"
+        _ => die!(~"wat")
     };
     assert (eq(expected, actual));
 }
diff --git a/src/test/run-pass/expr-alt-generic.rs b/src/test/run-pass/expr-alt-generic.rs
index 61e92500cc8..4fa2bf1913a 100644
--- a/src/test/run-pass/expr-alt-generic.rs
+++ b/src/test/run-pass/expr-alt-generic.rs
@@ -15,7 +15,7 @@
 type compare<T> = fn@(T, T) -> bool;
 
 fn test_generic<T: Copy>(expected: T, eq: compare<T>) {
-  let actual: T = match true { true => { expected }, _ => fail ~"wat" };
+  let actual: T = match true { true => { expected }, _ => die!(~"wat") };
     assert (eq(expected, actual));
 }
 
diff --git a/src/test/run-pass/expr-alt-struct.rs b/src/test/run-pass/expr-alt-struct.rs
index 1cc9d4ba684..f2887f2a691 100644
--- a/src/test/run-pass/expr-alt-struct.rs
+++ b/src/test/run-pass/expr-alt-struct.rs
@@ -17,7 +17,7 @@
 struct R { i: int }
 
 fn test_rec() {
-    let rs = match true { true => R {i: 100}, _ => fail };
+    let rs = match true { true => R {i: 100}, _ => die!() };
     assert (rs.i == 100);
 }
 
diff --git a/src/test/run-pass/expr-alt-unique.rs b/src/test/run-pass/expr-alt-unique.rs
index 43b926ee6e3..8dd0da344a3 100644
--- a/src/test/run-pass/expr-alt-unique.rs
+++ b/src/test/run-pass/expr-alt-unique.rs
@@ -15,7 +15,7 @@
 
 // Tests for match as expressions resulting in boxed types
 fn test_box() {
-    let res = match true { true => { ~100 }, _ => fail };
+    let res = match true { true => { ~100 }, _ => die!() };
     assert (*res == 100);
 }
 
diff --git a/src/test/run-pass/expr-if-fail-all.rs b/src/test/run-pass/expr-if-fail-all.rs
index 855f14bf55b..b56878dec63 100644
--- a/src/test/run-pass/expr-if-fail-all.rs
+++ b/src/test/run-pass/expr-if-fail-all.rs
@@ -10,4 +10,4 @@
 
 // When all branches of an if expression result in fail, the entire if
 // expression results in fail.
-fn main() { let x = if true { 10 } else { if true { fail } else { fail } }; }
+fn main() { let x = if true { 10 } else { if true { die!() } else { die!() } }; }
diff --git a/src/test/run-pass/expr-if-fail.rs b/src/test/run-pass/expr-if-fail.rs
index da2d316810e..3130b26ac58 100644
--- a/src/test/run-pass/expr-if-fail.rs
+++ b/src/test/run-pass/expr-if-fail.rs
@@ -8,15 +8,15 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-fn test_if_fail() { let x = if false { fail } else { 10 }; assert (x == 10); }
+fn test_if_fail() { let x = if false { die!() } else { 10 }; assert (x == 10); }
 
 fn test_else_fail() {
-    let x = if true { 10 } else { fail };
+    let x = if true { 10 } else { die!() };
     assert (x == 10);
 }
 
 fn test_elseif_fail() {
-    let x = if false { 0 } else if false { fail } else { 10 };
+    let x = if false { 0 } else if false { die!() } else { 10 };
     assert (x == 10);
 }
 
diff --git a/src/test/run-pass/for-loop-fail.rs b/src/test/run-pass/for-loop-fail.rs
index 0fd2fba8a9a..d7ef8cb63ce 100644
--- a/src/test/run-pass/for-loop-fail.rs
+++ b/src/test/run-pass/for-loop-fail.rs
@@ -8,4 +8,4 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-fn main() { let x: ~[int] = ~[]; for x.each |_i| { fail ~"moop"; } }
+fn main() { let x: ~[int] = ~[]; for x.each |_i| { die!(~"moop"); } }
diff --git a/src/test/run-pass/getopts_ref.rs b/src/test/run-pass/getopts_ref.rs
index 166625ce1a8..a97b748a8a0 100644
--- a/src/test/run-pass/getopts_ref.rs
+++ b/src/test/run-pass/getopts_ref.rs
@@ -21,7 +21,7 @@ fn main() {
     match getopts(args, opts) {
         result::Ok(ref m)  =>
             assert !opt_present(m, "b"),
-        result::Err(ref f) => fail fail_str(copy *f)
+        result::Err(ref f) => die!(fail_str(copy *f))
     };
 
 }
diff --git a/src/test/run-pass/if-bot.rs b/src/test/run-pass/if-bot.rs
index 47aae4b8d7e..c7c61cf8e42 100644
--- a/src/test/run-pass/if-bot.rs
+++ b/src/test/run-pass/if-bot.rs
@@ -11,6 +11,6 @@
 
 
 fn main() {
-    let i: int = if false { fail } else { 5 };
+    let i: int = if false { die!() } else { 5 };
     log(debug, i);
 }
diff --git a/src/test/run-pass/if-check.rs b/src/test/run-pass/if-check.rs
index 486608cde19..bb16b22c1e3 100644
--- a/src/test/run-pass/if-check.rs
+++ b/src/test/run-pass/if-check.rs
@@ -18,7 +18,7 @@ fn foo(x: uint) {
     if even(x) {
         log(debug, x);
     } else {
-        fail;
+        die!();
     }
 }
 
diff --git a/src/test/run-pass/issue-1516.rs b/src/test/run-pass/issue-1516.rs
index 209e7e42a2e..c83b52727e1 100644
--- a/src/test/run-pass/issue-1516.rs
+++ b/src/test/run-pass/issue-1516.rs
@@ -9,5 +9,5 @@
 // except according to those terms.
 
 // xfail-test
-fn main() {  let early_error: fn@(str) -> !  = {|msg| fail }; }
+fn main() {  let early_error: fn@(str) -> !  = {|msg| die!() }; }
 
diff --git a/src/test/run-pass/issue-2311-2.rs b/src/test/run-pass/issue-2311-2.rs
index 21201d0a957..9618ed96646 100644
--- a/src/test/run-pass/issue-2311-2.rs
+++ b/src/test/run-pass/issue-2311-2.rs
@@ -15,7 +15,7 @@ struct foo<A> {
 
 impl<A: Copy> foo<A> {
    fn bar<B,C:clam<A>>(c: C) -> B {
-     fail;
+     die!();
    }
 }
 
diff --git a/src/test/run-pass/issue-2312.rs b/src/test/run-pass/issue-2312.rs
index 3a6d8f38d48..8b6925b1a16 100644
--- a/src/test/run-pass/issue-2312.rs
+++ b/src/test/run-pass/issue-2312.rs
@@ -15,7 +15,7 @@ trait clam<A> { }
 enum foo = int;
 
 impl foo {
-    fn bar<B,C:clam<B>>(c: C) -> B { fail; }
+    fn bar<B,C:clam<B>>(c: C) -> B { die!(); }
 }
 
-fn main() { }
\ No newline at end of file
+fn main() { }
diff --git a/src/test/run-pass/issue-2718.rs b/src/test/run-pass/issue-2718.rs
index 68a318eab4e..135bc08c21d 100644
--- a/src/test/run-pass/issue-2718.rs
+++ b/src/test/run-pass/issue-2718.rs
@@ -53,9 +53,9 @@ pub mod pipes {
 
     #[abi = "rust-intrinsic"]
     mod rusti {
-      pub fn atomic_xchg(_dst: &mut int, _src: int) -> int { fail; }
-      pub fn atomic_xchg_acq(_dst: &mut int, _src: int) -> int { fail; }
-      pub fn atomic_xchg_rel(_dst: &mut int, _src: int) -> int { fail; }
+      pub fn atomic_xchg(_dst: &mut int, _src: int) -> int { die!(); }
+      pub fn atomic_xchg_acq(_dst: &mut int, _src: int) -> int { die!(); }
+      pub fn atomic_xchg_rel(_dst: &mut int, _src: int) -> int { die!(); }
     }
 
     // We should consider moving this to ::core::unsafe, although I
@@ -89,7 +89,7 @@ pub mod pipes {
             // The receiver will eventually clean this up.
             unsafe { forget(move p); }
           }
-          full => { fail ~"duplicate send" }
+          full => { die!(~"duplicate send") }
           blocked => {
 
             // The receiver will eventually clean this up.
@@ -132,7 +132,7 @@ pub mod pipes {
           }
           full => {
             // This is impossible
-            fail ~"you dun goofed"
+            die!(~"you dun goofed")
           }
           terminated => {
             // I have to clean up, use drop_glue
@@ -149,7 +149,7 @@ pub mod pipes {
           }
           blocked => {
             // this shouldn't happen.
-            fail ~"terminating a blocked packet"
+            die!(~"terminating a blocked packet")
           }
           terminated | full => {
             // I have to clean up, use drop_glue
@@ -269,7 +269,7 @@ pub mod pingpong {
         pub fn do_pong(-c: pong) -> (ping, ()) {
             let packet = ::pipes::recv(move c);
             if packet.is_none() {
-                fail ~"sender closed the connection"
+                die!(~"sender closed the connection")
             }
             (pingpong::liberate_pong(option::unwrap(move packet)), ())
         }
@@ -284,7 +284,7 @@ pub mod pingpong {
         pub fn do_ping(-c: ping) -> (pong, ()) {
             let packet = ::pipes::recv(move c);
             if packet.is_none() {
-                fail ~"sender closed the connection"
+                die!(~"sender closed the connection")
             }
             (pingpong::liberate_ping(option::unwrap(move packet)), ())
         }
diff --git a/src/test/run-pass/issue-2904.rs b/src/test/run-pass/issue-2904.rs
index 482d2665b2b..4aa66b48fbe 100644
--- a/src/test/run-pass/issue-2904.rs
+++ b/src/test/run-pass/issue-2904.rs
@@ -54,7 +54,7 @@ fn square_from_char(c: char) -> square {
       ' '  => { empty }
       _ => {
         error!("invalid square: %?", c);
-        fail
+        die!()
       }
     }
 }
diff --git a/src/test/run-pass/issue-3168.rs b/src/test/run-pass/issue-3168.rs
index 5caf5e05ab6..844619c676d 100644
--- a/src/test/run-pass/issue-3168.rs
+++ b/src/test/run-pass/issue-3168.rs
@@ -17,7 +17,7 @@ fn main() {
         do task::spawn |move p2| {
             p2.recv();
             error!("sibling fails");
-            fail;
+            die!();
         }   
         let (p3,c3) = pipes::stream();
         c.send(move c3);
diff --git a/src/test/run-pass/issue-3176.rs b/src/test/run-pass/issue-3176.rs
index 817d4b9a375..3cd52be70b0 100644
--- a/src/test/run-pass/issue-3176.rs
+++ b/src/test/run-pass/issue-3176.rs
@@ -19,7 +19,7 @@ fn main() {
         do task::spawn |move p2| {
             p2.recv();
             error!("sibling fails");
-            fail;
+            die!();
         }   
         let (p3,c3) = pipes::stream();
         c.send(move c3);
diff --git a/src/test/run-pass/issue-3895.rs b/src/test/run-pass/issue-3895.rs
index 62ca63e47d6..9296df58fec 100644
--- a/src/test/run-pass/issue-3895.rs
+++ b/src/test/run-pass/issue-3895.rs
@@ -14,6 +14,6 @@ fn main() {
     
     match BadChar {
         _ if true => BadChar,
-        BadChar | BadSyntax => fail ,
+        BadChar | BadSyntax => die!() ,
     };
 }
diff --git a/src/test/run-pass/issue-4016.rs b/src/test/run-pass/issue-4016.rs
index 253e0bd633b..8612252d5b6 100644
--- a/src/test/run-pass/issue-4016.rs
+++ b/src/test/run-pass/issue-4016.rs
@@ -21,7 +21,7 @@ trait JD : Deserializable<json::Deserializer> { }
 fn exec<T: JD>() {
     let doc = result::unwrap(json::from_str(""));
     let _v: T = deserialize(&json::Deserializer(move doc));
-    fail
+    die!()
 }
 
 fn main() {}
diff --git a/src/test/run-pass/iter-eachi.rs b/src/test/run-pass/iter-eachi.rs
index 31373fe1f8d..73732dae394 100644
--- a/src/test/run-pass/iter-eachi.rs
+++ b/src/test/run-pass/iter-eachi.rs
@@ -16,7 +16,7 @@ fn main() {
     }
     assert c == 5u;
 
-    for None::<uint>.eachi |i, v| { fail; }
+    for None::<uint>.eachi |i, v| { die!(); }
 
     let mut c = 0u;
     for Some(1u).eachi |i, v| {
diff --git a/src/test/run-pass/last-use-in-block.rs b/src/test/run-pass/last-use-in-block.rs
index a770a8217c9..8ea06f9f0b1 100644
--- a/src/test/run-pass/last-use-in-block.rs
+++ b/src/test/run-pass/last-use-in-block.rs
@@ -15,7 +15,7 @@ fn lp<T>(s: ~str, f: fn(~str) -> T) -> T {
         let r = f(s);
         return (move r);
     }
-    fail;
+    die!();
 }
 
 fn apply<T>(s: ~str, f: fn(~str) -> T) -> T {
diff --git a/src/test/run-pass/lots-a-fail.rs b/src/test/run-pass/lots-a-fail.rs
index ae759e07437..166639da5df 100644
--- a/src/test/run-pass/lots-a-fail.rs
+++ b/src/test/run-pass/lots-a-fail.rs
@@ -12,7 +12,7 @@
 extern mod std;
 
 fn die() {
-    fail;
+    die!();
 }
 
 fn iloop() {
diff --git a/src/test/run-pass/macro-interpolation.rs b/src/test/run-pass/macro-interpolation.rs
index fa6fdf73e79..dd620b5ae39 100644
--- a/src/test/run-pass/macro-interpolation.rs
+++ b/src/test/run-pass/macro-interpolation.rs
@@ -17,7 +17,7 @@ macro_rules! overly_complicated (
           Some($pat) => {
             $res
           }
-          _ => { fail; }
+          _ => { die!(); }
         }
     })
 
@@ -26,4 +26,4 @@ fn main() {
     assert overly_complicated!(f, x, Option<uint>, { return Some(x); },
                                Some(8u), Some(y), y) == 8u
 
-}
\ No newline at end of file
+}
diff --git a/src/test/run-pass/negative.rs b/src/test/run-pass/negative.rs
index fe1d19ee140..4d2949ab217 100644
--- a/src/test/run-pass/negative.rs
+++ b/src/test/run-pass/negative.rs
@@ -11,6 +11,6 @@
 fn main() {
     match -5 {
       -5 => {}
-      _ => { fail }
+      _ => { die!() }
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/run-pass/nested-alts.rs b/src/test/run-pass/nested-alts.rs
index b88db77b653..38fb1f4d2d0 100644
--- a/src/test/run-pass/nested-alts.rs
+++ b/src/test/run-pass/nested-alts.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 
-fn baz() -> ! { fail; }
+fn baz() -> ! { die!(); }
 
 fn foo() {
     match Some::<int>(5) {
diff --git a/src/test/run-pass/nested-class.rs b/src/test/run-pass/nested-class.rs
index a67afb791e2..3b02a20db80 100644
--- a/src/test/run-pass/nested-class.rs
+++ b/src/test/run-pass/nested-class.rs
@@ -24,10 +24,10 @@ fn main() {
         }
     }
 
-  //  fn b(x:int) -> int { fail; }
+  //  fn b(x:int) -> int { die!(); }
 
   let z = b(42);
   assert(z.i == 42);
   assert(z.do_stuff() == 37);
   
-}
\ No newline at end of file
+}
diff --git a/src/test/run-pass/nested-pattern.rs b/src/test/run-pass/nested-pattern.rs
index 450b697bfb1..3799fd106ee 100644
--- a/src/test/run-pass/nested-pattern.rs
+++ b/src/test/run-pass/nested-pattern.rs
@@ -16,7 +16,7 @@ enum t { foo(int, uint), bar(int, Option<int>), }
 
 fn nested(o: t) {
     match o {
-      bar(i, Some::<int>(_)) => { error!("wrong pattern matched"); fail; }
+      bar(i, Some::<int>(_)) => { error!("wrong pattern matched"); die!(); }
       _ => { error!("succeeded"); }
     }
 }
diff --git a/src/test/run-pass/nested-patterns.rs b/src/test/run-pass/nested-patterns.rs
index 06d630255c0..c9d4682209c 100644
--- a/src/test/run-pass/nested-patterns.rs
+++ b/src/test/run-pass/nested-patterns.rs
@@ -16,7 +16,7 @@ struct C { mut c: int }
 fn main() {
     match A {a: 10, b: @20} {
         x@A {a, b: @20} => { assert x.a == 10; assert a == 10; }
-        A {b, _} => { fail; }
+        A {b, _} => { die!(); }
     }
     let x@B {b, _} = B {a: 10, b: C {mut c: 20}};
     x.b.c = 30;
diff --git a/src/test/run-pass/option-unwrap.rs b/src/test/run-pass/option-unwrap.rs
index 552dfccfdbc..1e894263d7c 100644
--- a/src/test/run-pass/option-unwrap.rs
+++ b/src/test/run-pass/option-unwrap.rs
@@ -23,7 +23,7 @@ impl dtor : Drop {
 fn unwrap<T>(+o: Option<T>) -> T {
     match move o {
       Some(move v) => move v,
-      None => fail
+      None => die!()
     }
 }
 
diff --git a/src/test/run-pass/parse-fail.rs b/src/test/run-pass/parse-fail.rs
index 13d9eac1986..bb3ffdc14b4 100644
--- a/src/test/run-pass/parse-fail.rs
+++ b/src/test/run-pass/parse-fail.rs
@@ -12,6 +12,6 @@
 
 
 // -*- rust -*-
-fn dont_call_me() { fail; log(debug, 1); }
+fn dont_call_me() { die!(); log(debug, 1); }
 
 fn main() { }
diff --git a/src/test/run-pass/pipe-bank-proto.rs b/src/test/run-pass/pipe-bank-proto.rs
index 856057e10ae..5bd2f17b6e7 100644
--- a/src/test/run-pass/pipe-bank-proto.rs
+++ b/src/test/run-pass/pipe-bank-proto.rs
@@ -62,7 +62,7 @@ macro_rules! follow (
           $(Some($message($($($x,)+)* next)) => {
             let $next = move_it!(next);
             $e })+
-          _ => { fail }
+          _ => { die!() }
         }
     );
 )
@@ -73,7 +73,7 @@ fn client_follow(+bank: bank::client::login) {
     let bank = client::login(move bank, ~"theincredibleholk", ~"1234");
     let bank = switch(move bank, follow! (
         ok -> connected { move connected }
-        invalid -> _next { fail ~"bank closed the connected" }
+        invalid -> _next { die!(~"bank closed the connected") }
     ));
 
     let bank = client::deposit(move bank, 100.00);
@@ -83,7 +83,7 @@ fn client_follow(+bank: bank::client::login) {
             io::println(~"Yay! I got money!");
         }
         insufficient_funds -> _next {
-            fail ~"someone stole my money"
+            die!(~"someone stole my money")
         }
     ));
 }
@@ -96,8 +96,8 @@ fn bank_client(+bank: bank::client::login) {
       Some(ok(connected)) => {
         move_it!(connected)
       }
-      Some(invalid(_)) => { fail ~"login unsuccessful" }
-      None => { fail ~"bank closed the connection" }
+      Some(invalid(_)) => { die!(~"login unsuccessful") }
+      None => { die!(~"bank closed the connection") }
     };
 
     let bank = client::deposit(move bank, 100.00);
@@ -107,10 +107,10 @@ fn bank_client(+bank: bank::client::login) {
         io::println(~"Yay! I got money!");
       }
       Some(insufficient_funds(_)) => {
-        fail ~"someone stole my money"
+        die!(~"someone stole my money")
       }
       None => {
-        fail ~"bank closed the connection"
+        die!(~"bank closed the connection")
       }
     }
 }
diff --git a/src/test/run-pass/pipe-detect-term.rs b/src/test/run-pass/pipe-detect-term.rs
index 99e4acde147..a55921687e9 100644
--- a/src/test/run-pass/pipe-detect-term.rs
+++ b/src/test/run-pass/pipe-detect-term.rs
@@ -33,7 +33,7 @@ fn main() {
     
     pipes::spawn_service(oneshot::init, |p| { 
         match try_recv(move p) {
-          Some(*) => { fail }
+          Some(*) => { die!() }
           None => { }
         }
     });
@@ -48,7 +48,7 @@ fn failtest() {
     let (c, p) = oneshot::init();
 
     do task::spawn_with(move c) |_c| { 
-        fail;
+        die!();
     }
 
     error!("%?", recv(move p));
diff --git a/src/test/run-pass/pipe-presentation-examples.rs b/src/test/run-pass/pipe-presentation-examples.rs
index 8bfac5d0545..dafe1ccec2a 100644
--- a/src/test/run-pass/pipe-presentation-examples.rs
+++ b/src/test/run-pass/pipe-presentation-examples.rs
@@ -39,7 +39,7 @@ macro_rules! select_if (
                 let $next = move next;
                 move $e
               })+
-              _ => fail
+              _ => die!()
             }
         } else {
             select_if!(
@@ -57,7 +57,7 @@ macro_rules! select_if (
         $index:expr,
         $count:expr,
     } => {
-        fail
+        die!()
     }
 )
 
diff --git a/src/test/run-pass/pipe-select.rs b/src/test/run-pass/pipe-select.rs
index 97480fbbb05..ae0acb5c095 100644
--- a/src/test/run-pass/pipe-select.rs
+++ b/src/test/run-pass/pipe-select.rs
@@ -94,7 +94,7 @@ fn test_select2() {
 
     match pipes::select2(move ap, move bp) {
       either::Left(*) => { }
-      either::Right(*) => { fail }
+      either::Right(*) => { die!() }
     }
 
     stream::client::send(move bc, ~"abc");
@@ -107,7 +107,7 @@ fn test_select2() {
     stream::client::send(move bc, ~"abc");
 
     match pipes::select2(move ap, move bp) {
-      either::Left(*) => { fail }
+      either::Left(*) => { die!() }
       either::Right(*) => { }
     }
 
diff --git a/src/test/run-pass/region-return-interior-of-option.rs b/src/test/run-pass/region-return-interior-of-option.rs
index 9e960acbcdc..7033510ad2e 100644
--- a/src/test/run-pass/region-return-interior-of-option.rs
+++ b/src/test/run-pass/region-return-interior-of-option.rs
@@ -11,7 +11,7 @@
 fn get<T>(opt: &r/Option<T>) -> &r/T {
     match *opt {
       Some(ref v) => v,
-      None => fail ~"none"
+      None => die!(~"none")
     }
 }
 
@@ -29,4 +29,4 @@ fn main() {
         let y = get(&x);
         assert *y == 24;
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/run-pass/regions-bot.rs b/src/test/run-pass/regions-bot.rs
index d3c5c9f1b93..d9e047fc3f2 100644
--- a/src/test/run-pass/regions-bot.rs
+++ b/src/test/run-pass/regions-bot.rs
@@ -10,9 +10,9 @@
 
 // A very limited test of the "bottom" region
 
-fn produce_static<T>() -> &static/T { fail; }
+fn produce_static<T>() -> &static/T { die!(); }
 
 fn foo<T>(x: &T) -> &uint { produce_static() }
 
 fn main() {
-}
\ No newline at end of file
+}
diff --git a/src/test/run-pass/ret-bang.rs b/src/test/run-pass/ret-bang.rs
index ff960790762..a7c3d32890e 100644
--- a/src/test/run-pass/ret-bang.rs
+++ b/src/test/run-pass/ret-bang.rs
@@ -12,7 +12,7 @@
 
 
 // -*- rust -*-
-fn my_err(s: ~str) -> ! { log(error, s); fail; }
+fn my_err(s: ~str) -> ! { log(error, s); die!(); }
 
 fn okay(i: uint) -> int {
     if i == 3u { my_err(~"I don't like three"); } else { return 42; }
diff --git a/src/test/run-pass/select-macro.rs b/src/test/run-pass/select-macro.rs
index ad4a57f13a0..83746c728e8 100644
--- a/src/test/run-pass/select-macro.rs
+++ b/src/test/run-pass/select-macro.rs
@@ -19,7 +19,7 @@ macro_rules! select_if (
         $index:expr,
         $count:expr
     } => {
-        fail
+        die!()
     };
 
     {
@@ -40,7 +40,7 @@ macro_rules! select_if (
                 let $next = move next;
                 move $e
               })+
-              _ => fail
+              _ => die!()
             }
         } else {
             select_if!(
diff --git a/src/test/run-pass/send-iloop.rs b/src/test/run-pass/send-iloop.rs
index 28877f7eb94..a539777f84e 100644
--- a/src/test/run-pass/send-iloop.rs
+++ b/src/test/run-pass/send-iloop.rs
@@ -12,7 +12,7 @@
 extern mod std;
 
 fn die() {
-    fail;
+    die!();
 }
 
 fn iloop() {
diff --git a/src/test/run-pass/size-and-align.rs b/src/test/run-pass/size-and-align.rs
index 0f62b52e4d3..73dd4c222b9 100644
--- a/src/test/run-pass/size-and-align.rs
+++ b/src/test/run-pass/size-and-align.rs
@@ -16,7 +16,7 @@ enum clam<T> { a(T, int), b, }
 
 fn uhoh<T>(v: ~[clam<T>]) {
     match v[1] {
-      a::<T>(ref t, ref u) => { debug!("incorrect"); log(debug, u); fail; }
+      a::<T>(ref t, ref u) => { debug!("incorrect"); log(debug, u); die!(); }
       b::<T> => { debug!("correct"); }
     }
 }
diff --git a/src/test/run-pass/stat.rs b/src/test/run-pass/stat.rs
index f170f7c09a0..9345ba18463 100644
--- a/src/test/run-pass/stat.rs
+++ b/src/test/run-pass/stat.rs
@@ -20,7 +20,7 @@ fn main() {
 
     {
         match io::file_writer(&path, [io::Create, io::Truncate]) {
-            Err(copy e) => fail e,
+            Err(copy e) => die!(e),
             Ok(f) => {
                 for uint::range(0, 1000) |_i| {
                     f.write_u8(0);
diff --git a/src/test/run-pass/task-killjoin-rsrc.rs b/src/test/run-pass/task-killjoin-rsrc.rs
index ca4e8916cc0..06e8a28262b 100644
--- a/src/test/run-pass/task-killjoin-rsrc.rs
+++ b/src/test/run-pass/task-killjoin-rsrc.rs
@@ -69,7 +69,7 @@ fn supervised() {
     // runs first, but I can imagine that changing.
     error!("supervised task=%?", task::get_task);
     task::yield();
-    fail;
+    die!();
 }
 
 fn supervisor() {
diff --git a/src/test/run-pass/task-killjoin.rs b/src/test/run-pass/task-killjoin.rs
index 7ef94afa54f..5d978f2c273 100644
--- a/src/test/run-pass/task-killjoin.rs
+++ b/src/test/run-pass/task-killjoin.rs
@@ -20,7 +20,7 @@ fn supervised() {
     // currently not needed because the supervisor runs first, but I can
     // imagine that changing.
     task::yield();
-    fail;
+    die!();
 }
 
 fn supervisor() {
diff --git a/src/test/run-pass/terminate-in-initializer.rs b/src/test/run-pass/terminate-in-initializer.rs
index db91094b50b..a96541d1985 100644
--- a/src/test/run-pass/terminate-in-initializer.rs
+++ b/src/test/run-pass/terminate-in-initializer.rs
@@ -21,12 +21,12 @@ fn test_cont() { let mut i = 0; while i < 1 { i += 1; let x: @int = loop; } }
 fn test_ret() { let x: @int = return; }
 
 fn test_fail() {
-    fn f() { let x: @int = fail; }
+    fn f() { let x: @int = die!(); }
     task::try(|| f() );
 }
 
 fn test_fail_indirect() {
-    fn f() -> ! { fail; }
+    fn f() -> ! { die!(); }
     fn g() { let x: @int = f(); }
     task::try(|| g() );
 }
diff --git a/src/test/run-pass/test-runner-hides-main.rs b/src/test/run-pass/test-runner-hides-main.rs
index 59751cb1c01..bffd488355d 100644
--- a/src/test/run-pass/test-runner-hides-main.rs
+++ b/src/test/run-pass/test-runner-hides-main.rs
@@ -15,4 +15,4 @@ extern mod std;
 
 // Building as a test runner means that a synthetic main will be run,
 // not ours
-fn main() { fail; }
+fn main() { die!(); }
diff --git a/src/test/run-pass/unique-containing-tag.rs b/src/test/run-pass/unique-containing-tag.rs
index 4aa35ea6752..5b6b17d9e45 100644
--- a/src/test/run-pass/unique-containing-tag.rs
+++ b/src/test/run-pass/unique-containing-tag.rs
@@ -17,13 +17,13 @@ fn main() {
       t1(a) {
         assert a == 10;
       }
-      _ { fail; }
+      _ { die!(); }
     }*/
 
     /*alt x {
       ~t1(a) {
         assert a == 10;
       }
-      _ { fail; }
+      _ { die!(); }
     }*/
-}
\ No newline at end of file
+}
diff --git a/src/test/run-pass/unique-decl.rs b/src/test/run-pass/unique-decl.rs
index 8339fddb507..82afc1a0f60 100644
--- a/src/test/run-pass/unique-decl.rs
+++ b/src/test/run-pass/unique-decl.rs
@@ -13,5 +13,5 @@ fn main() {
 }
 
 fn f(i: ~int) -> ~int {
-    fail;
+    die!();
 }
diff --git a/src/test/run-pass/unique-pat.rs b/src/test/run-pass/unique-pat.rs
index d4ed2ab6350..c6e680842e6 100644
--- a/src/test/run-pass/unique-pat.rs
+++ b/src/test/run-pass/unique-pat.rs
@@ -11,10 +11,10 @@
 fn simple() {
     match ~true {
       ~true => { }
-      _ => { fail; }
+      _ => { die!(); }
     }
 }
 
 fn main() {
     simple();
-}
\ No newline at end of file
+}
diff --git a/src/test/run-pass/unreachable-code-1.rs b/src/test/run-pass/unreachable-code-1.rs
index 836eca6a6b6..b98e5edacc5 100644
--- a/src/test/run-pass/unreachable-code-1.rs
+++ b/src/test/run-pass/unreachable-code-1.rs
@@ -12,7 +12,7 @@
 fn id(x: bool) -> bool { x }
 
 fn call_id() {
-    let c = move fail;
+    let c = move die!();
     id(c); //~ WARNING unreachable statement
 }
 
diff --git a/src/test/run-pass/unreachable-code.rs b/src/test/run-pass/unreachable-code.rs
index 560de0d64f9..a3344bfa5b7 100644
--- a/src/test/run-pass/unreachable-code.rs
+++ b/src/test/run-pass/unreachable-code.rs
@@ -12,7 +12,7 @@
 fn id(x: bool) -> bool { x }
 
 fn call_id() {
-    let c = move fail;
+    let c = move die!();
     id(c);
 }
 
@@ -20,7 +20,7 @@ fn call_id_2() { id(true) && id(return); }
 
 fn call_id_3() { id(return) && id(return); }
 
-fn log_fail() { log(error, fail); }
+fn log_fail() { log(error, die!()); }
 
 fn log_ret() { log(error, return); }
 
diff --git a/src/test/run-pass/unwind-box.rs b/src/test/run-pass/unwind-box.rs
index 7ecd4f270bc..35dda8da170 100644
--- a/src/test/run-pass/unwind-box.rs
+++ b/src/test/run-pass/unwind-box.rs
@@ -13,7 +13,7 @@ extern mod std;
 
 fn f() {
     let a = @0;
-    fail;
+    die!();
 }
 
 fn main() {
diff --git a/src/test/run-pass/unwind-resource.rs b/src/test/run-pass/unwind-resource.rs
index c591c3d1086..b80a6b83b50 100644
--- a/src/test/run-pass/unwind-resource.rs
+++ b/src/test/run-pass/unwind-resource.rs
@@ -34,7 +34,7 @@ fn complainer(c: SharedChan<bool>) -> complainer {
 
 fn f(c: SharedChan<bool>) {
     let _c = move complainer(c);
-    fail;
+    die!();
 }
 
 fn main() {
diff --git a/src/test/run-pass/unwind-resource2.rs b/src/test/run-pass/unwind-resource2.rs
index 879053a1a0a..b133428f7fa 100644
--- a/src/test/run-pass/unwind-resource2.rs
+++ b/src/test/run-pass/unwind-resource2.rs
@@ -27,7 +27,7 @@ fn complainer(c: @int) -> complainer {
 
 fn f() {
     let c = move complainer(@0);
-    fail;
+    die!();
 }
 
 fn main() {
diff --git a/src/test/run-pass/unwind-unique.rs b/src/test/run-pass/unwind-unique.rs
index c07834e6146..0ff3cff54f5 100644
--- a/src/test/run-pass/unwind-unique.rs
+++ b/src/test/run-pass/unwind-unique.rs
@@ -13,7 +13,7 @@ extern mod std;
 
 fn f() {
     let a = ~0;
-    fail;
+    die!();
 }
 
 fn main() {
diff --git a/src/test/run-pass/use-uninit-alt2.rs b/src/test/run-pass/use-uninit-alt2.rs
index 31fc055d8fe..5b4fa1f84a5 100644
--- a/src/test/run-pass/use-uninit-alt2.rs
+++ b/src/test/run-pass/use-uninit-alt2.rs
@@ -12,7 +12,7 @@
 
 fn foo<T>(o: myoption<T>) -> int {
     let mut x: int;
-    match o { none::<T> => { fail; } some::<T>(t) => { x = 5; } }
+    match o { none::<T> => { die!(); } some::<T>(t) => { x = 5; } }
     return x;
 }
 
diff --git a/src/test/run-pass/weird-exprs.rs b/src/test/run-pass/weird-exprs.rs
index d65cb0c3e1b..7899306e98d 100644
--- a/src/test/run-pass/weird-exprs.rs
+++ b/src/test/run-pass/weird-exprs.rs
@@ -69,7 +69,7 @@ fn canttouchthis() -> uint {
 fn angrydome() {
     loop { if break { } }
     let mut i = 0;
-    loop { i += 1; if i == 1 { match (loop) { 1 => { }, _ => fail ~"wat" } }
+    loop { i += 1; if i == 1 { match (loop) { 1 => { }, _ => die!(~"wat") } }
       break; }
 }