]> git.lizzy.rs Git - rust.git/blob - tests/ui/bool_to_int_with_if.fixed
c48dc941b84b989d4149ad54a82307b87b63800b
[rust.git] / tests / ui / bool_to_int_with_if.fixed
1 // run-rustfix
2
3 #![warn(clippy::bool_to_int_with_if)]
4 #![allow(unused, dead_code, clippy::unnecessary_operation, clippy::no_effect)]
5
6 fn main() {
7     let a = true;
8     let b = false;
9
10     let x = 1;
11     let y = 2;
12
13     // Should lint
14     // precedence
15     i32::from(a);
16     i32::from(!a);
17     i32::from(!a);
18     i32::from(a || b);
19     i32::from(cond(a, b));
20     i32::from(x + y < 4);
21
22     // if else if
23     if a {
24         123
25     } else {i32::from(b)};
26
27     // if else if inverted
28     if a {
29         123
30     } else {i32::from(!b)};
31
32     // Shouldn't lint
33
34     if a {
35         1
36     } else if b {
37         0
38     } else {
39         3
40     };
41
42     if a {
43         3
44     } else if b {
45         1
46     } else {
47         -2
48     };
49
50     if a {
51         3
52     } else {
53         0
54     };
55     if a {
56         side_effect();
57         1
58     } else {
59         0
60     };
61     if a {
62         1
63     } else {
64         side_effect();
65         0
66     };
67
68     // multiple else ifs
69     if a {
70         123
71     } else if b {
72         1
73     } else if a | b {
74         0
75     } else {
76         123
77     };
78
79     some_fn(a);
80 }
81
82 // Lint returns and type inference
83 fn some_fn(a: bool) -> u8 {
84     u8::from(a)
85 }
86
87 fn side_effect() {}
88
89 fn cond(a: bool, b: bool) -> bool {
90     a || b
91 }