1 // run-pass
2 #![allow(non_upper_case_globals)]
3 
4 static mut destructions : isize = 3;
5 
foo()6 pub 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()18 pub fn main() {
19   foo();
20   assert_eq!(unsafe { destructions }, 0);
21 }
22