//@ revisions: spec min_spec #![feature(const_trait_impl)] #![cfg_attr(spec, feature(specialization))] //[spec]~^ WARN the feature `specialization` is incomplete #![cfg_attr(min_spec, feature(min_specialization))] #[const_trait] trait Bar {} impl const Bar for T {} #[const_trait] trait Foo { fn method(&self); } impl const Foo for T where T: [const] Bar, { default fn method(&self) {} } // specializing impl: impl Foo for (T,) { //~^ ERROR conflicting implementations fn method(&self) { println!("hi"); } } const fn dispatch(t: T) { t.method(); } fn main() { const { dispatch(((),)); } }