// run-pass // Regression test for https://github.com/rust-lang/rust/issues/73431. pub trait Zero { const ZERO: Self; } impl Zero for usize { const ZERO: Self = 0; } impl Zero for Wrapper { const ZERO: Self = Wrapper(T::ZERO); } #[derive(Debug, PartialEq, Eq)] pub struct Wrapper(T); fn is_zero(x: Wrapper) -> bool { match x { Zero::ZERO => true, _ => false, } } fn main() { let _ = is_zero(Wrapper(42)); }