blob: 24ae62bb05884104c59d25e7d20ed0260a35481d [file] [log] [blame]
Chariseeb1d32802022-09-22 15:38:41 +00001#![feature(lint_reasons)]
Chris Wailesa1538422021-12-02 10:37:12 -08002#![allow(unused, clippy::diverging_sub_expression)]
Matthew Maurer859223d2020-03-27 12:47:38 -07003#![warn(clippy::nonminimal_bool)]
4
5fn main() {
6 let a: bool = unimplemented!();
7 let b: bool = unimplemented!();
8 let c: bool = unimplemented!();
9 let d: bool = unimplemented!();
10 let e: bool = unimplemented!();
11 let _ = !true;
12 let _ = !false;
13 let _ = !!a;
14 let _ = false || a;
15 // don't lint on cfgs
16 let _ = cfg!(you_shall_not_not_pass) && a;
17 let _ = a || !b || !c || !d || !e;
18 let _ = !(!a && b);
19 let _ = !(!a || b);
20 let _ = !a && !(b && c);
21}
22
23fn equality_stuff() {
24 let a: i32 = unimplemented!();
25 let b: i32 = unimplemented!();
26 let c: i32 = unimplemented!();
27 let d: i32 = unimplemented!();
28 let _ = a == b && c == 5 && a == b;
29 let _ = a == b || c == 5 || a == b;
30 let _ = a == b && c == 5 && b == a;
31 let _ = a != b || !(a != b || c == d);
32 let _ = a != b && !(a != b && c == d);
33}
34
35fn issue3847(a: u32, b: u32) -> bool {
36 const THRESHOLD: u32 = 1_000;
37
38 if a < THRESHOLD && b >= THRESHOLD || a >= THRESHOLD && b < THRESHOLD {
39 return false;
40 }
41 true
42}
43
44fn issue4548() {
45 fn f(_i: u32, _j: u32) -> u32 {
46 unimplemented!();
47 }
48
49 let i = 0;
50 let j = 0;
51
52 if i != j && f(i, j) != 0 || i == j && f(i, j) != 1 {}
53}
Chariseeb1d32802022-09-22 15:38:41 +000054
55fn check_expect() {
56 let a: bool = unimplemented!();
57 #[expect(clippy::nonminimal_bool)]
58 let _ = !!a;
59}