use core::mem::ManuallyDrop; #[test] fn smoke() { struct TypeWithDrop; impl Drop for TypeWithDrop { fn drop(&mut self) { unreachable!("Should not get dropped"); } } let x = ManuallyDrop::new(TypeWithDrop); drop(x); // also test unsizing let x: Box> = Box::new(ManuallyDrop::new([TypeWithDrop, TypeWithDrop])); drop(x); }