1 #![feature(rustc_attrs)]
3 // Here we expect a coherence conflict because, even though `i32` does
4 // not implement `Iterator`, we cannot rely on that negative reasoning
5 // due to the orphan rules. Therefore, `A::Item` may yet turn out to
8 pub trait Foo<P> { fn foo() {} }
14 impl Foo<i32> for i32 { }
16 impl<A:Iterator> Foo<A::Item> for A { }