]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/invalid_upcast_comparisons.rs
Special sync of 'e89801553ddbaccdeb2eac4db08900edb51ac7ff'
[rust.git] / src / tools / clippy / tests / ui / invalid_upcast_comparisons.rs
1 #![warn(clippy::invalid_upcast_comparisons)]
2 #![allow(
3     unused,
4     clippy::eq_op,
5     clippy::no_effect,
6     clippy::unnecessary_operation,
7     clippy::cast_lossless
8 )]
9
10 fn mk_value<T>() -> T {
11     unimplemented!()
12 }
13
14 fn main() {
15     let u32: u32 = mk_value();
16     let u8: u8 = mk_value();
17     let i32: i32 = mk_value();
18     let i8: i8 = mk_value();
19
20     // always false, since no u8 can be > 300
21     (u8 as u32) > 300;
22     (u8 as i32) > 300;
23     (u8 as u32) == 300;
24     (u8 as i32) == 300;
25     300 < (u8 as u32);
26     300 < (u8 as i32);
27     300 == (u8 as u32);
28     300 == (u8 as i32);
29     // inverted of the above
30     (u8 as u32) <= 300;
31     (u8 as i32) <= 300;
32     (u8 as u32) != 300;
33     (u8 as i32) != 300;
34     300 >= (u8 as u32);
35     300 >= (u8 as i32);
36     300 != (u8 as u32);
37     300 != (u8 as i32);
38
39     // always false, since u8 -> i32 doesn't wrap
40     (u8 as i32) < 0;
41     -5 != (u8 as i32);
42     // inverted of the above
43     (u8 as i32) >= 0;
44     -5 == (u8 as i32);
45
46     // always false, since no u8 can be 1337
47     1337 == (u8 as i32);
48     1337 == (u8 as u32);
49     // inverted of the above
50     1337 != (u8 as i32);
51     1337 != (u8 as u32);
52
53     // Those are Ok:
54     (u8 as u32) > 20;
55     42 == (u8 as i32);
56     42 != (u8 as i32);
57     42 > (u8 as i32);
58     (u8 as i32) == 42;
59     (u8 as i32) != 42;
60     (u8 as i32) > 42;
61     (u8 as i32) < 42;
62
63     (u8 as i8) == -1;
64     (u8 as i8) != -1;
65     (u8 as i32) > -1;
66     (u8 as i32) < -1;
67     (u32 as i32) < -5;
68     (u32 as i32) < 10;
69
70     (i8 as u8) == 1;
71     (i8 as u8) != 1;
72     (i8 as u8) < 1;
73     (i8 as u8) > 1;
74     (i32 as u32) < 5;
75     (i32 as u32) < 10;
76
77     -5 < (u32 as i32);
78     0 <= (u32 as i32);
79     0 < (u32 as i32);
80
81     -5 > (u32 as i32);
82     -5 >= (u8 as i32);
83
84     -5 == (u32 as i32);
85 }