1
- // does not test any rustfixable lints
2
-
3
- #[ rustfmt:: skip]
4
- #[ warn( clippy:: eq_op) ]
5
- #[ allow( clippy:: identity_op, clippy:: double_parens) ]
6
- #[ allow( clippy:: no_effect, unused_variables, clippy:: unnecessary_operation, clippy:: short_circuit_statement) ]
7
- #[ allow( clippy:: nonminimal_bool) ]
8
- #[ allow( unused) ]
9
- #[ allow( clippy:: unnecessary_cast) ]
1
+ // compile-flags: --test
2
+
3
+ #![ warn( clippy:: eq_op) ]
4
+ #![ allow( clippy:: double_parens, clippy:: identity_op, clippy:: nonminimal_bool) ]
5
+
10
6
fn main ( ) {
11
7
// simple values and comparisons
12
- 1 == 1 ;
13
- "no" == "no" ;
8
+ let _ = 1 == 1 ;
9
+ let _ = "no" == "no" ;
14
10
// even though I agree that no means no ;-)
15
- false != false ;
16
- 1.5 < 1.5 ;
17
- 1u64 >= 1u64 ;
11
+ let _ = false != false ;
12
+ let _ = 1.5 < 1.5 ;
13
+ let _ = 1u64 >= 1u64 ;
18
14
19
15
// casts, methods, parentheses
20
- ( 1 as u64 ) & ( 1 as u64 ) ;
21
- 1 ^ ( ( ( ( ( ( 1 ) ) ) ) ) ) ;
16
+ let _ = ( 1u32 as u64 ) & ( 1u32 as u64 ) ;
17
+ #[ rustfmt:: skip]
18
+ {
19
+ let _ = 1 ^ ( ( ( ( ( ( 1 ) ) ) ) ) ) ;
20
+ } ;
22
21
23
22
// unary and binary operators
24
- ( -( 2 ) < -( 2 ) ) ;
25
- ( ( 1 + 1 ) & ( 1 + 1 ) == ( 1 + 1 ) & ( 1 + 1 ) ) ;
26
- ( 1 * 2 ) + ( 3 * 4 ) == 1 * 2 + 3 * 4 ;
23
+ let _ = ( -( 2 ) < -( 2 ) ) ;
24
+ let _ = ( ( 1 + 1 ) & ( 1 + 1 ) == ( 1 + 1 ) & ( 1 + 1 ) ) ;
25
+ let _ = ( 1 * 2 ) + ( 3 * 4 ) == 1 * 2 + 3 * 4 ;
27
26
28
27
// various other things
29
- ( [ 1 ] != [ 1 ] ) ;
30
- ( ( 1 , 2 ) != ( 1 , 2 ) ) ;
31
- vec ! [ 1 , 2 , 3 ] == vec ! [ 1 , 2 , 3 ] ; //no error yet, as we don't match macros
28
+ let _ = ( [ 1 ] != [ 1 ] ) ;
29
+ let _ = ( ( 1 , 2 ) != ( 1 , 2 ) ) ;
30
+ let _ = vec ! [ 1 , 2 , 3 ] == vec ! [ 1 , 2 , 3 ] ; //no error yet, as we don't match macros
32
31
33
32
// const folding
34
- 1 + 1 == 2 ;
35
- 1 - 1 == 0 ;
33
+ let _ = 1 + 1 == 2 ;
34
+ let _ = 1 - 1 == 0 ;
36
35
37
- 1 - 1 ;
38
- 1 / 1 ;
39
- true && true ;
40
-
41
- true || true ;
36
+ let _ = 1 - 1 ;
37
+ let _ = 1 / 1 ;
38
+ let _ = true && true ;
42
39
40
+ let _ = true || true ;
43
41
44
42
let a: u32 = 0 ;
45
43
let b: u32 = 0 ;
46
44
47
- a == b && b == a;
48
- a != b && b != a;
49
- a < b && b > a;
50
- a <= b && b >= a;
45
+ let _ = a == b && b == a;
46
+ let _ = a != b && b != a;
47
+ let _ = a < b && b > a;
48
+ let _ = a <= b && b >= a;
51
49
52
50
let mut a = vec ! [ 1 ] ;
53
- a == a;
54
- 2 * a. len ( ) == 2 * a. len ( ) ; // ok, functions
55
- a. pop ( ) == a. pop ( ) ; // ok, functions
51
+ let _ = a == a;
52
+ let _ = 2 * a. len ( ) == 2 * a. len ( ) ; // ok, functions
53
+ let _ = a. pop ( ) == a. pop ( ) ; // ok, functions
56
54
57
55
check_ignore_macro ( ) ;
58
56
@@ -63,15 +61,14 @@ fn main() {
63
61
const D : u32 = A / A ;
64
62
}
65
63
66
- #[ rustfmt:: skip]
67
64
macro_rules! check_if_named_foo {
68
- ( $expression: expr) => (
65
+ ( $expression: expr) => {
69
66
if stringify!( $expression) == "foo" {
70
67
println!( "foo!" ) ;
71
68
} else {
72
69
println!( "not foo." ) ;
73
70
}
74
- )
71
+ } ;
75
72
}
76
73
77
74
macro_rules! bool_macro {
@@ -80,11 +77,10 @@ macro_rules! bool_macro {
80
77
} ;
81
78
}
82
79
83
- #[ allow( clippy:: short_circuit_statement) ]
84
80
fn check_ignore_macro ( ) {
85
81
check_if_named_foo ! ( foo) ;
86
82
// checks if the lint ignores macros with `!` operator
87
- !bool_macro ! ( 1 ) && !bool_macro ! ( "" ) ;
83
+ let _ = !bool_macro ! ( 1 ) && !bool_macro ! ( "" ) ;
88
84
}
89
85
90
86
struct Nested {
@@ -95,3 +91,18 @@ fn check_nested(n1: &Nested, n2: &Nested) -> bool {
95
91
// `n2.inner.0.0` mistyped as `n1.inner.0.0`
96
92
( n1. inner . 0 ) . 0 == ( n1. inner . 0 ) . 0 && ( n1. inner . 1 ) . 0 == ( n2. inner . 1 ) . 0 && ( n1. inner . 2 ) . 0 == ( n2. inner . 2 ) . 0
97
93
}
94
+
95
+ #[ test]
96
+ fn eq_op_shouldnt_trigger_in_tests ( ) {
97
+ let a = 1 ;
98
+ let result = a + 1 == 1 + a;
99
+ assert ! ( result) ;
100
+ }
101
+
102
+ #[ test]
103
+ fn eq_op_macros_shouldnt_trigger_in_tests ( ) {
104
+ let a = 1 ;
105
+ let b = 2 ;
106
+ assert_eq ! ( a, a) ;
107
+ assert_eq ! ( a + b, b + a) ;
108
+ }
0 commit comments