1 // run-pass 2 #![allow(non_upper_case_globals)] 3 4 static mut destructions : isize = 3; 5 foo()6pub fn foo() { 7 struct Foo; 8 9 impl Drop for Foo { 10 fn drop(&mut self) { 11 unsafe { destructions -= 1 }; 12 } 13 } 14 15 let _x = [Foo, Foo, Foo]; 16 } 17 main()18pub fn main() { 19 foo(); 20 assert_eq!(unsafe { destructions }, 0); 21 } 22