// run-pass // Make sure we don't crash with a cycle error during coherence. #![feature(specialization)] //~ WARN the feature `specialization` is incomplete trait Trait<T> { type Assoc; } impl<T> Trait<T> for Vec<T> { default type Assoc = (); } impl Trait<u8> for Vec<u8> { type Assoc = u8; } impl<T> Trait<T> for String { type Assoc = (); } impl Trait<<Vec<u8> as Trait<u8>>::Assoc> for String {} fn main() {}