1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// check-pass trait Foo { type Assoc<T>: PartialEq<Self::Assoc<i32>>; } impl Foo for () { type Assoc<T> = Wrapper<T>; } struct Wrapper<T>(T); impl<T> PartialEq<Wrapper<i32>> for Wrapper<T> { fn eq(&self, _other: &Wrapper<i32>) -> bool { true } } fn main() {}