static mut DROP_RAN: bool = false; struct Foo; impl Drop for Foo { fn drop(&mut self) { unsafe { DROP_RAN = true; } } } trait Trait { fn dummy(&self) { } } impl Trait for Foo {} struct Fat { f: T } pub fn main() { { let _x: Box> = Box::>::new(Fat { f: Foo }); } unsafe { assert!(DROP_RAN); } }