| struct Foo; | |
| impl Drop for Foo { | |
| fn drop(&mut self) { | |
| unsafe { | |
| FOO = true; | |
| } | |
| } | |
| } | |
| static mut FOO: bool = false; | |
| enum Bar { | |
| A(#[allow(dead_code)] Box<i32>), | |
| B(Foo), | |
| } | |
| fn main() { | |
| assert!(unsafe { !FOO }); | |
| drop(Bar::A(Box::new(42))); | |
| assert!(unsafe { !FOO }); | |
| drop(Bar::B(Foo)); | |
| assert!(unsafe { FOO }); | |
| } |