// 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();
    }
}
