//@ 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());