diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2013-03-22 13:11:03 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2013-03-22 22:24:34 -0700 |
| commit | eba3367404e9ca6abf84199b5c2dbe51ce6cdbde (patch) | |
| tree | 51f5c04a529cdfc03cd4fded6f66c699a8162940 | |
| parent | fa70709e07983fb62d1fddadac0987c79e836d23 (diff) | |
| download | rust-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.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 13 | ||||
| -rw-r--r-- | src/libsyntax/parse/obsolete.rs | 5 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 6 | ||||
| -rw-r--r-- | src/libsyntax/parse/token.rs | 2 |
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", |
