rust/tests/ui/absurd-extreme-comparisons.rs

94 lines
1.0 KiB
Rust
Raw Normal View History

#![feature(plugin)]
#![plugin(clippy)]
#![deny(absurd_extreme_comparisons)]
#![allow(unused, eq_op, no_effect, unnecessary_operation)]
fn main() {
const Z: u32 = 0;
let u: u32 = 42;
u <= 0;
2017-02-08 14:58:07 +01:00
u <= Z;
2017-02-08 14:58:07 +01:00
u < Z;
2017-02-08 14:58:07 +01:00
Z >= u;
2017-02-08 14:58:07 +01:00
Z > u;
2017-02-08 14:58:07 +01:00
u > std::u32::MAX;
2017-02-08 14:58:07 +01:00
u >= std::u32::MAX;
2017-02-08 14:58:07 +01:00
std::u32::MAX < u;
2017-02-08 14:58:07 +01:00
std::u32::MAX <= u;
2017-02-08 14:58:07 +01:00
1-1 > u;
2017-02-08 14:58:07 +01:00
u >= !0;
2017-02-08 14:58:07 +01:00
u <= 12 - 2*6;
2017-02-08 14:58:07 +01:00
let i: i8 = 0;
i < -127 - 1;
2017-02-08 14:58:07 +01:00
std::i8::MAX >= i;
2017-02-08 14:58:07 +01:00
3-7 < std::i32::MIN;
2017-02-08 14:58:07 +01:00
let b = false;
b >= true;
2017-02-08 14:58:07 +01:00
false > b;
2017-02-08 14:58:07 +01:00
u > 0; // ok
// this is handled by unit_cmp
2017-02-08 14:58:07 +01:00
() < {};
}
use std::cmp::{Ordering, PartialEq, PartialOrd};
#[derive(PartialEq, PartialOrd)]
pub struct U(u64);
impl PartialEq<u32> for U {
fn eq(&self, other: &u32) -> bool {
self.eq(&U(*other as u64))
}
}
impl PartialOrd<u32> for U {
fn partial_cmp(&self, other: &u32) -> Option<Ordering> {
self.partial_cmp(&U(*other as u64))
}
}
pub fn foo(val: U) -> bool {
val > std::u32::MAX
}