-// run-pass
+// build-pass
// Test the uninit() construct returning various empty types.
// pretty-expanded FIXME #23616
-use std::mem;
+use std::mem::MaybeUninit;
-#[derive(Clone)]
struct Foo;
#[allow(deprecated)]
pub fn main() {
unsafe {
- let _x: Foo = mem::uninitialized();
- let _x: [Foo; 2] = mem::uninitialized();
+ // `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();
}
}