//@normalize-stderr-test: "\| +\^+" -> "| ^" | |
//@normalize-stderr-test: "\n +[0-9]+:[^\n]+" -> "" | |
//@normalize-stderr-test: "\n +at [^\n]+" -> "" | |
// 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()); | |
} |