// Tests that specializing trait impls must be at least as const as the default impl. //@ 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 Value { fn value() -> u32; } impl const Value for T { default fn value() -> u32 { 0 } } struct FortyTwo; impl Value for FortyTwo { //~^ ERROR conflicting implementations fn value() -> u32 { println!("You can't do that (constly)"); 42 } } fn main() {}