rust/tests/ui/traits/default-method/rustc_must_implement_one_of.rs
2025-04-08 23:06:31 +03:00

44 lines
698 B
Rust

#![feature(rustc_attrs)]
#[rustc_must_implement_one_of(eq, neq)]
trait Equal {
fn eq(&self, other: &Self) -> bool {
!self.neq(other)
}
fn neq(&self, other: &Self) -> bool {
!self.eq(other)
}
}
struct T0;
struct T1;
struct T2;
struct T3;
impl Equal for T0 {
fn eq(&self, _other: &Self) -> bool {
true
}
}
impl Equal for T1 {
fn neq(&self, _other: &Self) -> bool {
false
}
}
impl Equal for T2 {
fn eq(&self, _other: &Self) -> bool {
true
}
fn neq(&self, _other: &Self) -> bool {
false
}
}
impl Equal for T3 {}
//~^ ERROR not all trait items implemented, missing one of: `eq`, `neq`
fn main() {}