]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/precedence.rs
Merge branch 'master' into hooks
[rust.git] / src / tools / clippy / tests / ui / precedence.rs
1 // run-rustfix
2 #![warn(clippy::precedence)]
3 #![allow(unused_must_use, clippy::no_effect, clippy::unnecessary_operation)]
4 #![allow(clippy::identity_op)]
5 #![allow(clippy::eq_op)]
6
7 macro_rules! trip {
8     ($a:expr) => {
9         match $a & 0b1111_1111u8 {
10             0 => println!("a is zero ({})", $a),
11             _ => println!("a is {}", $a),
12         }
13     };
14 }
15
16 fn main() {
17     1 << 2 + 3;
18     1 + 2 << 3;
19     4 >> 1 + 1;
20     1 + 3 >> 2;
21     1 ^ 1 - 1;
22     3 | 2 - 1;
23     3 & 5 - 2;
24     -1i32.abs();
25     -1f32.abs();
26
27     // These should not trigger an error
28     let _ = (-1i32).abs();
29     let _ = (-1f32).abs();
30     let _ = -(1i32).abs();
31     let _ = -(1f32).abs();
32     let _ = -(1i32.abs());
33     let _ = -(1f32.abs());
34
35     // Odd functions should not trigger an error
36     let _ = -1f64.asin();
37     let _ = -1f64.asinh();
38     let _ = -1f64.atan();
39     let _ = -1f64.atanh();
40     let _ = -1f64.cbrt();
41     let _ = -1f64.fract();
42     let _ = -1f64.round();
43     let _ = -1f64.signum();
44     let _ = -1f64.sin();
45     let _ = -1f64.sinh();
46     let _ = -1f64.tan();
47     let _ = -1f64.tanh();
48     let _ = -1f64.to_degrees();
49     let _ = -1f64.to_radians();
50
51     // Chains containing any non-odd function should trigger (issue #5924)
52     let _ = -1.0_f64.cos().cos();
53     let _ = -1.0_f64.cos().sin();
54     let _ = -1.0_f64.sin().cos();
55
56     // Chains of odd functions shouldn't trigger
57     let _ = -1f64.sin().sin();
58
59     let b = 3;
60     trip!(b * 8);
61 }