diff options
Diffstat (limited to 'src/test/ui/issues/issue-16774.rs')
-rw-r--r-- | src/test/ui/issues/issue-16774.rs | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/src/test/ui/issues/issue-16774.rs b/src/test/ui/issues/issue-16774.rs deleted file mode 100644 index 2b308ef76..000000000 --- a/src/test/ui/issues/issue-16774.rs +++ /dev/null @@ -1,45 +0,0 @@ -// run-pass -#![feature(box_patterns)] - -use std::ops::{Deref, DerefMut}; - -struct X(Box<isize>); - -static mut DESTRUCTOR_RAN: bool = false; - -impl Drop for X { - fn drop(&mut self) { - unsafe { - assert!(!DESTRUCTOR_RAN); - DESTRUCTOR_RAN = true; - } - } -} - -impl Deref for X { - type Target = isize; - - fn deref(&self) -> &isize { - let &X(box ref x) = self; - x - } -} - -impl DerefMut for X { - fn deref_mut(&mut self) -> &mut isize { - let &mut X(box ref mut x) = self; - x - } -} - -fn main() { - { - let mut test = X(Box::new(5)); - { - let mut change = || { *test = 10 }; - change(); - } - assert_eq!(*test, 10); - } - assert!(unsafe { DESTRUCTOR_RAN }); -} |