// run-pass #![allow(non_upper_case_globals)] static mut destructions : isize = 3; pub fn foo() { struct Foo; impl Drop for Foo { fn drop(&mut self) { unsafe { destructions -= 1 }; } } let _x = [Foo, Foo, Foo]; } pub fn main() { foo(); assert_eq!(unsafe { destructions }, 0); }