#![warn(clippy::uninhabited_references)] | |
#![allow(clippy::missing_transmute_annotations)] | |
#![feature(never_type)] | |
fn ret_uninh_ref() -> &'static std::convert::Infallible { | |
unsafe { std::mem::transmute(&()) } | |
} | |
macro_rules! ret_something { | |
($name:ident, $ty:ty) => { | |
fn $name(x: &$ty) -> &$ty { | |
&*x | |
} | |
}; | |
} | |
ret_something!(id_u32, u32); | |
ret_something!(id_never, !); | |
fn main() { | |
let x = ret_uninh_ref(); | |
let _ = *x; | |
} |