1 #![warn(clippy::absurd_extreme_comparisons)]
2 #![allow(
3     unused,
4     clippy::eq_op,
5     clippy::no_effect,
6     clippy::unnecessary_operation,
7     clippy::needless_pass_by_value
8 )]
9 
10 #[rustfmt::skip]
main()11 fn main() {
12     const Z: u32 = 0;
13     let u: u32 = 42;
14     u <= 0;
15     u <= Z;
16     u < Z;
17     Z >= u;
18     Z > u;
19     u > u32::MAX;
20     u >= u32::MAX;
21     u32::MAX < u;
22     u32::MAX <= u;
23     1-1 > u;
24     u >= !0;
25     u <= 12 - 2*6;
26     let i: i8 = 0;
27     i < -127 - 1;
28     i8::MAX >= i;
29     3-7 < i32::MIN;
30     let b = false;
31     b >= true;
32     false > b;
33     u > 0; // ok
34     // this is handled by clippy::unit_cmp
35     () < {};
36 }
37 
38 use std::cmp::{Ordering, PartialEq, PartialOrd};
39 
40 #[derive(PartialEq, PartialOrd)]
41 pub struct U(u64);
42 
43 impl PartialEq<u32> for U {
eq(&self, other: &u32) -> bool44     fn eq(&self, other: &u32) -> bool {
45         self.eq(&U(u64::from(*other)))
46     }
47 }
48 impl PartialOrd<u32> for U {
partial_cmp(&self, other: &u32) -> Option<Ordering>49     fn partial_cmp(&self, other: &u32) -> Option<Ordering> {
50         self.partial_cmp(&U(u64::from(*other)))
51     }
52 }
53 
foo(val: U) -> bool54 pub fn foo(val: U) -> bool {
55     val > u32::MAX
56 }
57 
bar(len: u64) -> bool58 pub fn bar(len: u64) -> bool {
59     // This is OK as we are casting from target sized to fixed size
60     len >= usize::MAX as u64
61 }
62