rust/src/test/ui/never_transmute_never.rs
2018-12-25 21:08:33 -07:00

24 lines
382 B
Rust

// compile-pass
#![crate_type="lib"]
#![feature(never_type)]
#![allow(dead_code)]
#![allow(unreachable_code)]
#![allow(unused_variables)]
struct Foo;
pub fn f(x: !) -> ! {
x
}
pub fn ub() {
// This is completely undefined behaviour,
// but we still want to make sure it compiles.
let x: ! = unsafe {
std::mem::transmute::<Foo, !>(Foo)
};
f(x)
}