Skip to content

Commit e17977f

Browse files
author
Keegan McAllister
committed
Apply d3c831b to libcore's assert_eq!()
1 parent 637ca4e commit e17977f

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

src/libcore/macros.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,16 @@ macro_rules! debug_assert(
7474
/// Runtime assertion for equality, for details see std::macros
7575
#[macro_export]
7676
macro_rules! assert_eq(
77-
($cond1:expr, $cond2:expr) => ({
78-
let c1 = $cond1;
79-
let c2 = $cond2;
80-
if c1 != c2 || c2 != c1 {
81-
fail!("expressions not equal, left: {}, right: {}", c1, c2);
77+
($given:expr , $expected:expr) => ({
78+
match (&($given), &($expected)) {
79+
(given_val, expected_val) => {
80+
// check both directions of equality....
81+
if !((*given_val == *expected_val) &&
82+
(*expected_val == *given_val)) {
83+
fail!("assertion failed: `(left == right) && (right == left)` \
84+
(left: `{}`, right: `{}`)", *given_val, *expected_val)
85+
}
86+
}
8287
}
8388
})
8489
)

0 commit comments

Comments
 (0)