| #![warn(clippy::precedence)] |
| #![allow(unused_must_use, clippy::no_effect, clippy::unnecessary_operation)] |
| #![allow(clippy::identity_op)] |
| #![allow(clippy::eq_op)] |
| |
| macro_rules! trip { |
| ($a:expr) => { |
| match $a & 0b1111_1111u8 { |
| 0 => println!("a is zero ({})", $a), |
| _ => println!("a is {}", $a), |
| } |
| }; |
| } |
| |
| fn main() { |
| 1 << (2 + 3); |
| (1 + 2) << 3; |
| 4 >> (1 + 1); |
| (1 + 3) >> 2; |
| 1 ^ (1 - 1); |
| 3 | (2 - 1); |
| 3 & (5 - 2); |
| -(1i32.abs()); |
| -(1f32.abs()); |
| |
| // These should not trigger an error |
| let _ = (-1i32).abs(); |
| let _ = (-1f32).abs(); |
| let _ = -(1i32).abs(); |
| let _ = -(1f32).abs(); |
| let _ = -(1i32.abs()); |
| let _ = -(1f32.abs()); |
| |
| // Odd functions should not trigger an error |
| let _ = -1f64.asin(); |
| let _ = -1f64.asinh(); |
| let _ = -1f64.atan(); |
| let _ = -1f64.atanh(); |
| let _ = -1f64.cbrt(); |
| let _ = -1f64.fract(); |
| let _ = -1f64.round(); |
| let _ = -1f64.signum(); |
| let _ = -1f64.sin(); |
| let _ = -1f64.sinh(); |
| let _ = -1f64.tan(); |
| let _ = -1f64.tanh(); |
| let _ = -1f64.to_degrees(); |
| let _ = -1f64.to_radians(); |
| |
| // Chains containing any non-odd function should trigger (issue #5924) |
| let _ = -(1.0_f64.cos().cos()); |
| let _ = -(1.0_f64.cos().sin()); |
| let _ = -(1.0_f64.sin().cos()); |
| |
| // Chains of odd functions shouldn't trigger |
| let _ = -1f64.sin().sin(); |
| |
| let b = 3; |
| trip!(b * 8); |
| } |