]> git.proxmox.com Git - rustc.git/blob - tests/ui/generator/panic-safe.rs
New upstream version 1.68.2+dfsg1
[rustc.git] / tests / ui / generator / panic-safe.rs
1 // run-pass
2 // needs-unwind
3
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 }