2019-12-13 21:28:32 -06:00
|
|
|
// build-fail
|
2019-06-24 21:39:23 -05:00
|
|
|
|
|
|
|
pub const unsafe fn fake_type<T>() -> T {
|
2022-09-21 06:05:20 -05:00
|
|
|
hint_unreachable() //~ ERROR evaluation of `<i32 as Const>::CONSTANT` failed
|
2019-06-24 21:39:23 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
pub const unsafe fn hint_unreachable() -> ! {
|
2020-12-02 05:49:11 -06:00
|
|
|
fake_type()
|
2019-06-24 21:39:23 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
trait Const {
|
2020-12-02 05:49:11 -06:00
|
|
|
const CONSTANT: i32 = unsafe { fake_type() };
|
2019-06-24 21:39:23 -05:00
|
|
|
}
|
|
|
|
|
2019-12-23 16:11:03 -06:00
|
|
|
impl<T> Const for T {}
|
2019-06-24 21:39:23 -05:00
|
|
|
|
|
|
|
pub fn main() -> () {
|
2022-11-15 05:06:20 -06:00
|
|
|
dbg!(i32::CONSTANT); //~ constant
|
2019-06-24 21:39:23 -05:00
|
|
|
}
|