#![allow(dead_code, deprecated, unused_variables, unused_mut)] #![feature(allocator_api, ptr_as_uninit)] use std::alloc::{Allocator, Layout, Global}; use std::mem::MaybeUninit; use std::ptr::NonNull; fn main() -> Result<(), impl core::fmt::Debug> { let memory: NonNull<[u8]> = Global.allocate(Layout::new::<[u8; 32]>())?; #[allow(unused_variables)] let slice: &mut [MaybeUninit] = unsafe { memory.as_uninit_slice_mut() }; unsafe { Global.deallocate(memory.cast(), Layout::new::<[u8; 32]>()); } Ok::<_, std::alloc::AllocError>(()) }