]> git.lizzy.rs Git - rust.git/blob - tests/ui/booleans.rs
Merge pull request #2367 from etaoins/inline-fn-without-body-lint
[rust.git] / tests / ui / booleans.rs
1
2
3 #![warn(nonminimal_bool, logic_bug)]
4
5 #[allow(unused, many_single_char_names)]
6 fn main() {
7     let a: bool = unimplemented!();
8     let b: bool = unimplemented!();
9     let c: bool = unimplemented!();
10     let d: bool = unimplemented!();
11     let e: bool = unimplemented!();
12     let _ = a && b || a;
13     let _ = !(a && b);
14     let _ = !true;
15     let _ = !false;
16     let _ = !!a;
17     let _ = false && a;
18     let _ = false || a;
19     // don't lint on cfgs
20     let _ = cfg!(you_shall_not_not_pass) && a;
21     let _ = a || !b || !c || !d || !e;
22     let _ = !(a && b || c);
23     let _ = !(!a && b);
24 }
25
26 #[allow(unused, many_single_char_names)]
27 fn equality_stuff() {
28     let a: i32 = unimplemented!();
29     let b: i32 = unimplemented!();
30     let c: i32 = unimplemented!();
31     let d: i32 = unimplemented!();
32     let e: i32 = unimplemented!();
33     let _ = a == b && a != b;
34     let _ = a == b && c == 5 && a == b;
35     let _ = a == b && c == 5 && b == a;
36     let _ = a < b && a >= b;
37     let _ = a > b && a <= b;
38     let _ = a > b && a == b;
39     let _ = a != b || !(a != b || c == d);
40 }
41
42 #[allow(unused, many_single_char_names)]
43 fn methods_with_negation() {
44     let a: Option<i32> = unimplemented!();
45     let b: Result<i32, i32> = unimplemented!();
46     let _ = a.is_some();
47     let _ = !a.is_some();
48     let _ = a.is_none();
49     let _ = !a.is_none();
50     let _ = b.is_err();
51     let _ = !b.is_err();
52     let _ = b.is_ok();
53     let _ = !b.is_ok();
54     let c = false;
55     let _ = !(a.is_some() && !c);
56     let _ = !(!c ^ c) || !a.is_some();
57     let _ = (!c ^ c) || !a.is_some();
58     let _ = !c ^ c || !a.is_some();
59 }