]> git.lizzy.rs Git - rust.git/blob - src/test/ui/generator/resume-after-return.rs
Auto merge of #65140 - petrochenkov:disapp, r=nikomatsakis
[rust.git] / src / test / ui / generator / resume-after-return.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::{GeneratorState, Generator};
8 use std::pin::Pin;
9 use std::panic;
10
11 fn main() {
12     let mut foo = || {
13         if true {
14             return
15         }
16         yield;
17     };
18
19     match Pin::new(&mut foo).resume() {
20         GeneratorState::Complete(()) => {}
21         s => panic!("bad state: {:?}", s),
22     }
23
24     match panic::catch_unwind(move || Pin::new(&mut foo).resume()) {
25         Ok(_) => panic!("generator successfully resumed"),
26         Err(_) => {}
27     }
28 }