#![feature(never_type)] fn make_up_a_value() -> T { unsafe { //~^ ERROR mismatched types let x: *const ! = 0 as _; &raw const *x; // Since `*x` is `!`, HIR typeck used to think that it diverges // and allowed the block to coerce to any value, leading to UB. } } fn make_up_a_pointer() -> *const T { unsafe { let x: *const ! = 0 as _; &raw const *x //~^ ERROR mismatched types } } fn main() {}