]> git.lizzy.rs Git - rust.git/blob - tests/ui/never_type/never_transmute_never.rs
Auto merge of #106520 - ehuss:update-mdbook, r=Mark-Simulacrum
[rust.git] / tests / ui / never_type / never_transmute_never.rs
1 // check-pass
2
3 #![crate_type="lib"]
4
5 #![feature(never_type)]
6 #![allow(dead_code)]
7 #![allow(unreachable_code)]
8 #![allow(unused_variables)]
9
10 struct Foo;
11
12 pub fn f(x: !) -> ! {
13     x
14 }
15
16 pub fn ub() {
17     // This is completely undefined behaviour,
18     // but we still want to make sure it compiles.
19     let x: ! = unsafe {
20         std::mem::transmute::<Foo, !>(Foo)
21     };
22     f(x)
23 }