1 // build-fail
2 
fake_type<T>() -> T3 pub const unsafe fn fake_type<T>() -> T {
4     hint_unreachable() //~ ERROR any use of this value will cause an error [const_err]
5     //~| WARN this was previously accepted by the compiler but is being phased out
6 }
7 
hint_unreachable() -> !8 pub const unsafe fn hint_unreachable() -> ! {
9     fake_type()
10 }
11 
12 trait Const {
13     const CONSTANT: i32 = unsafe { fake_type() };
14 }
15 
16 impl<T> Const for T {}
17 
main() -> ()18 pub fn main() -> () {
19     dbg!(i32::CONSTANT); //~ ERROR erroneous constant used
20 }
21