// Make sure we don't ICE when evaluating a trait whose impl has a bad signature. #![feature(const_trait_impl)] #[const_trait] trait Value { fn value() -> u32; } const fn get_value() -> u32 { T::value() } struct FortyTwo; impl const Value for FortyTwo { fn value() -> i64 { //~^ ERROR method `value` has an incompatible type for trait 42 } } const FORTY_TWO: u32 = get_value::(); fn main() { assert_eq!(FORTY_TWO, 42); }