summary refs log tree commit diff
path: root/src/libsyntax/ext
diff options
context:
space:
mode:
authorJohn Clements <clements@racket-lang.org>2013-03-13 12:10:32 -0700
committerJohn Clements <clements@racket-lang.org>2013-03-20 13:27:45 -0700
commitab8e46b0660e076e629e6775ed8da9890c5fbf1f (patch)
tree75200518eac0c8128d10fae12cbaa556a2c2f2ff /src/libsyntax/ext
parent0847d52a8677a39525b7cf7a09571851b6deb8b9 (diff)
downloadrust-ab8e46b0660e076e629e6775ed8da9890c5fbf1f.tar.gz
rust-ab8e46b0660e076e629e6775ed8da9890c5fbf1f.zip
add assert_eq! macro
the assert_eq! macro compares its arguments and fails if they're not
equal. It's more informative than fail_unless!, because it explicitly
writes the given and expected arguments on failure.
Diffstat (limited to 'src/libsyntax/ext')
-rw-r--r--src/libsyntax/ext/expand.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs
index ad05e2f21e6..030cdab7951 100644
--- a/src/libsyntax/ext/expand.rs
+++ b/src/libsyntax/ext/expand.rs
@@ -464,6 +464,15 @@ pub fn core_macros() -> ~str {
         }
     )
 
+    macro_rules! assert_eq (
+        ($given:expr , $expected:expr) =>
+        ({let given_val = $given;
+          let expected_val = $expected;
+          // check both directions of equality....
+          if !((given_val == expected_val) && (expected_val == given_val)) {
+            fail!(fmt!(\"expected: %?, given: %?\",expected_val,given_val));
+        }}))
+
     macro_rules! condition (
 
         { $c:ident: $in:ty -> $out:ty; } => {
@@ -481,6 +490,7 @@ pub fn core_macros() -> ~str {
         }
     )
 
+
 }";
 }