#[macro_export]
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!("assertion failed: `(left == right) && (right == left)` \
- (left: `{}`, right: `{}`)", *given_val, *expected_val)
+ match (&($given), &($expected)) {
+ (given_val, expected_val) => {
+ // check both directions of equality....
+ if !((*given_val == *expected_val) &&
+ (*expected_val == *given_val)) {
+ fail!("assertion failed: `(left == right) && (right == left)` \
+ (left: `{}`, right: `{}`)", *given_val, *expected_val)
+ }
+ }
}
})
)