// known-bug: #117606 #![feature(associated_type_defaults)] trait Foo { type Bar: Baz = i32; // We should be able to prove that `i32: Baz` because of // the impl below, which requires that `Self::Bar<()>: Eq` // which is true, because we assume `for Self::Bar = i32`. } trait Baz {} impl Baz for i32 where T::Bar<()>: Eq {} trait Eq {} impl Eq for T {} fn main() {}