]> git.lizzy.rs Git - rust.git/blob - tests/ui/precedence.rs
Auto merge of #3635 - matthiaskrgr:revert_random_state_3603, r=xfix
[rust.git] / tests / ui / precedence.rs
1 // Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution.
3 //
4 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
5 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
6 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
7 // option. This file may not be copied, modified, or distributed
8 // except according to those terms.
9
10 #[warn(clippy::precedence)]
11 #[allow(clippy::identity_op)]
12 #[allow(clippy::eq_op)]
13
14 macro_rules! trip {
15     ($a:expr) => {
16         match $a & 0b1111_1111i8 {
17             0 => println!("a is zero ({})", $a),
18             _ => println!("a is {}", $a),
19         }
20     };
21 }
22
23 fn main() {
24     1 << 2 + 3;
25     1 + 2 << 3;
26     4 >> 1 + 1;
27     1 + 3 >> 2;
28     1 ^ 1 - 1;
29     3 | 2 - 1;
30     3 & 5 - 2;
31     -1i32.abs();
32     -1f32.abs();
33
34     // These should not trigger an error
35     let _ = (-1i32).abs();
36     let _ = (-1f32).abs();
37     let _ = -(1i32).abs();
38     let _ = -(1f32).abs();
39     let _ = -(1i32.abs());
40     let _ = -(1f32.abs());
41
42     let b = 3;
43     trip!(b * 8);
44 }