Files
rust/tests/ui/eq_op_macros.rs
Guillaume Gomez f666fd6417 Update UI tests
2025-02-15 13:38:16 +01:00

78 lines
1.5 KiB
Rust

#![warn(clippy::eq_op)]
#![allow(clippy::useless_vec)]
// lint also in macro definition
macro_rules! assert_in_macro_def {
() => {
let a = 42;
assert_eq!(a, a);
//~^ eq_op
assert_ne!(a, a);
//~^ eq_op
debug_assert_eq!(a, a);
//~^ eq_op
debug_assert_ne!(a, a);
//~^ eq_op
};
}
// lint identical args in assert-like macro invocations (see #3574)
fn main() {
assert_in_macro_def!();
let a = 1;
let b = 2;
// lint identical args in `assert_eq!`
assert_eq!(a, a);
//~^ eq_op
assert_eq!(a + 1, a + 1);
//~^ eq_op
// ok
assert_eq!(a, b);
assert_eq!(a, a + 1);
assert_eq!(a + 1, b + 1);
// lint identical args in `assert_ne!`
assert_ne!(a, a);
//~^ eq_op
assert_ne!(a + 1, a + 1);
//~^ eq_op
// ok
assert_ne!(a, b);
assert_ne!(a, a + 1);
assert_ne!(a + 1, b + 1);
// lint identical args in `debug_assert_eq!`
debug_assert_eq!(a, a);
//~^ eq_op
debug_assert_eq!(a + 1, a + 1);
//~^ eq_op
// ok
debug_assert_eq!(a, b);
debug_assert_eq!(a, a + 1);
debug_assert_eq!(a + 1, b + 1);
// lint identical args in `debug_assert_ne!`
debug_assert_ne!(a, a);
//~^ eq_op
debug_assert_ne!(a + 1, a + 1);
//~^ eq_op
// ok
debug_assert_ne!(a, b);
debug_assert_ne!(a, a + 1);
debug_assert_ne!(a + 1, b + 1);
let my_vec = vec![1; 5];
let mut my_iter = my_vec.iter();
assert_ne!(my_iter.next(), my_iter.next());
}