2 #![feature(box_syntax)]
3 #![feature(box_patterns)]
5 use std::ops::{Deref, DerefMut};
9 static mut DESTRUCTOR_RAN: bool = false;
14 assert!(!DESTRUCTOR_RAN);
15 DESTRUCTOR_RAN = true;
23 fn deref(&self) -> &isize {
24 let &X(box ref x) = self;
30 fn deref_mut(&mut self) -> &mut isize {
31 let &mut X(box ref mut x) = self;
38 let mut test = X(box 5);
40 let mut change = || { *test = 10 };
43 assert_eq!(*test, 10);
45 assert!(unsafe { DESTRUCTOR_RAN });