//@ revisions: current next //@[next] compile-flags: -Znext-solver // Should fail. Default items completely drop candidates instead of ambiguity, // which is unsound during coherence, since coherence requires completeness. #![feature(specialization)] #![allow(incomplete_features)] trait Default { type Id; } impl Default for T { default type Id = T; } trait Overlap { type Assoc; } impl Overlap for u32 { type Assoc = usize; } impl Overlap for ::Id { //~^ ERROR conflicting implementations of trait `Overlap` for type `u32` type Assoc = Box; } fn main() {}