]> git.lizzy.rs Git - rust.git/blob - src/test/ui/generator/panic-safe.rs
Auto merge of #65838 - estebank:resilient-recovery, r=Centril
[rust.git] / src / test / ui / generator / panic-safe.rs
1 // run-pass
2
3 // ignore-wasm32-bare compiled with panic=abort by default
4
5 #![feature(generators, generator_trait)]
6
7 use std::ops::Generator;
8 use std::pin::Pin;
9 use std::panic;
10
11 fn main() {
12     let mut foo = || {
13         if true {
14             panic!();
15         }
16         yield;
17     };
18
19     let res = panic::catch_unwind(panic::AssertUnwindSafe(|| {
20         Pin::new(&mut foo).resume()
21     }));
22     assert!(res.is_err());
23
24     for _ in 0..10 {
25         let res = panic::catch_unwind(panic::AssertUnwindSafe(|| {
26             Pin::new(&mut foo).resume()
27         }));
28         assert!(res.is_err());
29     }
30 }