1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// run-pass // needs-unwind use std::panic; fn test() { wait(|| panic!()); } fn wait<T, F: FnOnce() -> T>(f: F) -> F::Output { From::from(f()) } fn main() { let result = panic::catch_unwind(move || test()); assert!(result.is_err()); }