]> git.lizzy.rs Git - rust.git/blob - tests/ui/absurd-extreme-comparisons.rs
Lint needless take-by-value
[rust.git] / tests / ui / absurd-extreme-comparisons.rs
1 #![feature(plugin)]
2 #![plugin(clippy)]
3
4 #![deny(absurd_extreme_comparisons)]
5 #![allow(unused, eq_op, no_effect, unnecessary_operation, needless_take_by_value)]
6
7 fn main() {
8     const Z: u32 = 0;
9
10     let u: u32 = 42;
11
12     u <= 0;
13
14
15     u <= Z;
16
17
18     u < Z;
19
20
21     Z >= u;
22
23
24     Z > u;
25
26
27     u > std::u32::MAX;
28
29
30     u >= std::u32::MAX;
31
32
33     std::u32::MAX < u;
34
35
36     std::u32::MAX <= u;
37
38
39
40     1-1 > u;
41
42
43     u >= !0;
44
45
46     u <= 12 - 2*6;
47
48
49
50     let i: i8 = 0;
51     i < -127 - 1;
52
53
54     std::i8::MAX >= i;
55
56
57     3-7 < std::i32::MIN;
58
59
60
61     let b = false;
62     b >= true;
63
64
65     false > b;
66
67
68
69     u > 0; // ok
70
71     // this is handled by unit_cmp
72     () < {};
73 }
74
75 use std::cmp::{Ordering, PartialEq, PartialOrd};
76
77 #[derive(PartialEq, PartialOrd)]
78 pub struct U(u64);
79
80 impl PartialEq<u32> for U {
81     fn eq(&self, other: &u32) -> bool {
82         self.eq(&U(*other as u64))
83     }
84 }
85 impl PartialOrd<u32> for U {
86     fn partial_cmp(&self, other: &u32) -> Option<Ordering> {
87         self.partial_cmp(&U(*other as u64))
88     }
89 }
90
91 pub fn foo(val: U) -> bool {
92     val > std::u32::MAX
93 }