24 lines
466 B
Rust
24 lines
466 B
Rust
#![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;
|
|
}
|