about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-03-22 13:11:03 -0700
committerPatrick Walton <pcwalton@mimiga.net>2013-03-22 22:24:34 -0700
commiteba3367404e9ca6abf84199b5c2dbe51ce6cdbde (patch)
tree51f5c04a529cdfc03cd4fded6f66c699a8162940
parentfa70709e07983fb62d1fddadac0987c79e836d23 (diff)
downloadrust-eba3367404e9ca6abf84199b5c2dbe51ce6cdbde.tar.gz
rust-eba3367404e9ca6abf84199b5c2dbe51ce6cdbde.zip
libsyntax: Introduce the new `assert!` macro; make `assert` no longer a keyword
-rw-r--r--src/libcore/at_vec.rs2
-rw-r--r--src/libsyntax/ext/expand.rs13
-rw-r--r--src/libsyntax/parse/obsolete.rs5
-rw-r--r--src/libsyntax/parse/parser.rs6
-rw-r--r--src/libsyntax/parse/token.rs2
5 files changed, 16 insertions, 12 deletions
diff --git a/src/libcore/at_vec.rs b/src/libcore/at_vec.rs
index 29b7e35e24b..dbc132899d9 100644
--- a/src/libcore/at_vec.rs
+++ b/src/libcore/at_vec.rs
@@ -291,7 +291,7 @@ pub fn test() {
         }
     }
 
-    fail_unless!(seq_range(10, 15) == @[10, 11, 12, 13, 14]);
+    assert_eq!(seq_range(10, 15), @[10, 11, 12, 13, 14]);
     fail_unless!(from_fn(5, |x| x+1) == @[1, 2, 3, 4, 5]);
     fail_unless!(from_elem(5, 3.14) == @[3.14, 3.14, 3.14, 3.14, 3.14]);
 }
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs
index 27b35b37849..46ded7ecf3d 100644
--- a/src/libsyntax/ext/expand.rs
+++ b/src/libsyntax/ext/expand.rs
@@ -464,6 +464,19 @@ pub fn core_macros() -> ~str {
         }
     )
 
+    macro_rules! assert(
+        ($cond:expr) => {
+            if !$cond {
+                ::core::sys::fail_assert(stringify!($cond), file!(), line!())
+            }
+        };
+        ($cond:expr, $msg:expr) => {
+            if !$cond {
+                ::core::sys::fail_assert($msg, file!(), line!())
+            }
+        }
+    )
+
     macro_rules! assert_eq (
         ($given:expr , $expected:expr) =>
         ({let given_val = $given;
diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs
index 173ae31f948..a987ae948a4 100644
--- a/src/libsyntax/parse/obsolete.rs
+++ b/src/libsyntax/parse/obsolete.rs
@@ -51,7 +51,6 @@ pub enum ObsoleteSyntax {
     ObsoleteTraitImplVisibility,
     ObsoleteRecordType,
     ObsoleteRecordPattern,
-    ObsoleteAssertion,
     ObsoletePostFnTySigil,
     ObsoleteBareFnType,
     ObsoleteNewtypeEnum,
@@ -165,10 +164,6 @@ pub impl Parser {
                 "structural record pattern",
                 "use a structure instead"
             ),
-            ObsoleteAssertion => (
-                "assertion",
-                "use `fail_unless!()` instead"
-            ),
             ObsoletePostFnTySigil => (
                 "fn sigil in postfix position",
                 "Rather than `fn@`, `fn~`, or `fn&`, \
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 4b79e4f20f3..6f2c0f7ddf5 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -76,7 +76,7 @@ use parse::obsolete::{ObsoleteUnsafeBlock, ObsoleteImplSyntax};
 use parse::obsolete::{ObsoleteTraitBoundSeparator, ObsoleteMutOwnedPointer};
 use parse::obsolete::{ObsoleteMutVector, ObsoleteTraitImplVisibility};
 use parse::obsolete::{ObsoleteRecordType, ObsoleteRecordPattern};
-use parse::obsolete::{ObsoleteAssertion, ObsoletePostFnTySigil};
+use parse::obsolete::{ObsoletePostFnTySigil};
 use parse::obsolete::{ObsoleteBareFnType, ObsoleteNewtypeEnum};
 use parse::obsolete::{ObsoleteMode, ObsoleteImplicitSelf};
 use parse::obsolete::{ObsoleteLifetimeNotation, ObsoleteConstManagedPointer};
@@ -1217,10 +1217,6 @@ pub impl Parser {
             ex = expr_log(ast::log_other, lvl, e);
             hi = self.span.hi;
             self.expect(&token::RPAREN);
-        } else if self.eat_keyword(&~"assert") {
-            let e = self.parse_expr();
-            ex = expr_copy(e);  // whatever
-            self.obsolete(*self.last_span, ObsoleteAssertion);
         } else if self.eat_keyword(&~"return") {
             if can_begin_expr(&*self.token) {
                 let e = self.parse_expr();
diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs
index f5542fa81a6..8b78087e16f 100644
--- a/src/libsyntax/parse/token.rs
+++ b/src/libsyntax/parse/token.rs
@@ -488,7 +488,7 @@ pub fn temporary_keyword_table() -> HashMap<~str, ()> {
 pub fn strict_keyword_table() -> HashMap<~str, ()> {
     let words = HashMap();
     let keys = ~[
-        ~"as", ~"assert",
+        ~"as",
         ~"break",
         ~"const", ~"copy",
         ~"do", ~"drop",