mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 15:01:51 +00:00
std: use a match
in assert_eq!
to extend the lifetime of the args.
This enables assert_eq!(foo.collect::<Vec<...>>().as_slice(), &[1,2,3,4]); to work, by extending the lifetime of the .as_slice() rvalue.
This commit is contained in:
parent
8801d891c4
commit
d3c831ba4a
@ -117,13 +117,15 @@ macro_rules! assert(
|
||||
#[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)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user