summaryrefslogtreecommitdiffstats
path: root/tests/ui/uninit-empty-types.rs
blob: b21de882b2ceb95bf684c52824106c438dab6b58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// build-pass
// Test the uninit() construct returning various empty types.

// pretty-expanded FIXME #23616

use std::mem::MaybeUninit;

struct Foo;

#[allow(deprecated)]
pub fn main() {
    unsafe {
        // `Foo` and `[Foo; 2]` are both zero sized and inhabited, so this is safe.
        let _x: Foo = MaybeUninit::uninit().assume_init();
        let _x: [Foo; 2] = MaybeUninit::uninit().assume_init();
        let _x: Foo = std::mem::uninitialized();
        let _x: [Foo; 2] = std::mem::uninitialized();
    }
}