// run-pass | |
// needs-unwind | |
// Checks that nested panics work correctly. | |
use std::panic::catch_unwind; | |
fn double() { | |
struct Double; | |
impl Drop for Double { | |
fn drop(&mut self) { | |
let _ = catch_unwind(|| panic!("twice")); | |
} | |
} | |
let _d = Double; | |
panic!("once"); | |
} | |
fn main() { | |
assert!(catch_unwind(|| double()).is_err()); | |
} |