// run-pass | |
// Make sure the destructor is run for newtype structs. | |
use std::cell::Cell; | |
struct Foo<'a>(&'a Cell<isize>); | |
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); | |
} |