]> git.proxmox.com Git - rustc.git/blame - src/tools/clippy/tests/ui/precedence.rs
New upstream version 1.52.1+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / precedence.rs
CommitLineData
f20569fa
XL
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
7macro_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
16fn 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}