// run-pass static mut DROP_RAN: bool = false; trait Bar { fn do_something(&mut self); } struct BarImpl; impl Bar for BarImpl { fn do_something(&mut self) {} } struct Foo(#[allow(unused_tuple_struct_fields)] B); impl Drop for Foo { fn drop(&mut self) { unsafe { DROP_RAN = true; } } } fn main() { { let _x: Foo = Foo(BarImpl); } unsafe { assert_eq!(DROP_RAN, true); } }