//@ revisions: current negative #![feature(specialization)] #![cfg_attr(negative, feature(with_negative_coherence))] #![allow(incomplete_features)] trait X {} trait Y: X {} trait Z { type Assoc: Y; } struct A(T); impl Y for T where T: X {} impl Z for A { type Assoc = T; } // this impl is invalid, but causes an ICE anyway impl From< as Z>::Assoc> for T {} //~^ ERROR type parameter `T` must be used as the type parameter for some local type (e.g., `MyStruct`) fn main() {}