diff options
Diffstat (limited to 'src/test/ui/issues/issue-29948.rs')
-rw-r--r-- | src/test/ui/issues/issue-29948.rs | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/src/test/ui/issues/issue-29948.rs b/src/test/ui/issues/issue-29948.rs deleted file mode 100644 index 3ed701480..000000000 --- a/src/test/ui/issues/issue-29948.rs +++ /dev/null @@ -1,40 +0,0 @@ -// run-pass -// needs-unwind - -use std::panic; - -impl<'a> panic::UnwindSafe for Foo<'a> {} -impl<'a> panic::RefUnwindSafe for Foo<'a> {} - -struct Foo<'a>(&'a mut bool); - -impl<'a> Drop for Foo<'a> { - fn drop(&mut self) { - *self.0 = true; - } -} - -fn f<T: FnOnce()>(t: T) { - t() -} - -fn main() { - let mut ran_drop = false; - { - let x = Foo(&mut ran_drop); - let x = move || { let _ = x; }; - f(x); - } - assert!(ran_drop); - - let mut ran_drop = false; - { - let x = Foo(&mut ran_drop); - let result = panic::catch_unwind(move || { - let x = move || { let _ = x; panic!() }; - f(x); - }); - assert!(result.is_err()); - } - assert!(ran_drop); -} |