// run-pass // Make sure the destructor is run for newtype structs. use std::cell::Cell; struct Foo<'a>(&'a Cell); impl<'a> Drop for Foo<'a> { fn drop(&mut self) { let Foo(i) = *self; i.set(23); } } pub fn main() { let y = &Cell::new(32); { let _x = Foo(y); } assert_eq!(y.get(), 23); }