1 // run-pass 2 3 static mut DROPPED: [bool; 2] = [false, false]; 4 5 struct A(usize); 6 struct Foo { _a: A, _b: isize } 7 8 impl Drop for A { drop(&mut self)9 fn drop(&mut self) { 10 let A(i) = *self; 11 unsafe { DROPPED[i] = true; } 12 } 13 } 14 main()15fn main() { 16 { 17 Foo { 18 _a: A(0), 19 ..Foo { _a: A(1), _b: 2 } 20 }; 21 } 22 unsafe { 23 assert!(DROPPED[0]); 24 assert!(DROPPED[1]); 25 } 26 } 27