Test const impl of cmp traits

This commit is contained in:
Dylan MacKenzie 2021-12-01 14:37:51 -08:00
parent 9c83b56056
commit 1606335a93

View file

@ -203,3 +203,31 @@ fn cmp_default() {
assert!(Fool(false) != Fool(false));
assert_eq!(Fool(false), Fool(true));
}
struct S(i32);
impl const PartialEq for S {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
impl const PartialOrd for S {
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
let ret = match (self.0, other.0) {
(a, b) if a > b => Ordering::Greater,
(a, b) if a < b => Ordering::Less,
_ => Ordering::Equal,
};
Some(ret)
}
}
const _: () = assert!(S(1) == S(1));
const _: () = assert!(S(0) != S(1));
const _: () = assert!(S(1) <= S(1));
const _: () = assert!(S(1) >= S(1));
const _: () = assert!(S(0) < S(1));
const _: () = assert!(S(1) > S(0));