]> git.lizzy.rs Git - rust.git/blob - src/test/ui/generator/resume-after-return.rs
Auto merge of #98051 - davidtwco:split-dwarf-stabilization, r=wesleywiser
[rust.git] / src / test / ui / generator / resume-after-return.rs
1 // run-pass
2 // needs-unwind
3
4 // ignore-wasm32-bare compiled with panic=abort by default
5
6 #![feature(generators, generator_trait)]
7
8 use std::ops::{GeneratorState, Generator};
9 use std::pin::Pin;
10 use std::panic;
11
12 fn main() {
13     let mut foo = || {
14         if true {
15             return
16         }
17         yield;
18     };
19
20     match Pin::new(&mut foo).resume(()) {
21         GeneratorState::Complete(()) => {}
22         s => panic!("bad state: {:?}", s),
23     }
24
25     match panic::catch_unwind(move || Pin::new(&mut foo).resume(())) {
26         Ok(_) => panic!("generator successfully resumed"),
27         Err(_) => {}
28     }
29 }