#![allow(unused_variables)] #![feature(get_mut_unchecked)] #![feature(allocator_api)] fn main() { use std::sync::Arc; use std::alloc::System; let mut values = Arc::<[u32], _>::new_uninit_slice_in(3, System); let values = unsafe { Arc::get_mut_unchecked(&mut values)[0].as_mut_ptr().write(1); Arc::get_mut_unchecked(&mut values)[1].as_mut_ptr().write(2); Arc::get_mut_unchecked(&mut values)[2].as_mut_ptr().write(3); values.assume_init() }; assert_eq!(* values, [1, 2, 3]) }