summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/eq_op_macros.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clippy/tests/ui/eq_op_macros.rs')
-rw-r--r--src/tools/clippy/tests/ui/eq_op_macros.rs56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui/eq_op_macros.rs b/src/tools/clippy/tests/ui/eq_op_macros.rs
new file mode 100644
index 000000000..6b5b31a1a
--- /dev/null
+++ b/src/tools/clippy/tests/ui/eq_op_macros.rs
@@ -0,0 +1,56 @@
+#![warn(clippy::eq_op)]
+
+// lint also in macro definition
+macro_rules! assert_in_macro_def {
+ () => {
+ let a = 42;
+ assert_eq!(a, a);
+ assert_ne!(a, a);
+ debug_assert_eq!(a, a);
+ debug_assert_ne!(a, a);
+ };
+}
+
+// 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);
+ assert_eq!(a + 1, a + 1);
+ // 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);
+ assert_ne!(a + 1, a + 1);
+ // 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);
+ debug_assert_eq!(a + 1, a + 1);
+ // 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);
+ debug_assert_ne!(a + 1, a + 1);
+ // 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());
+}