]> git.lizzy.rs Git - rust.git/blob - src/test/run-make/coverage/yield.rs
Auto merge of #100595 - matthiaskrgr:rollup-f1zur58, r=matthiaskrgr
[rust.git] / src / test / run-make / coverage / yield.rs
1 #![feature(generators, generator_trait)]
2 #![allow(unused_assignments)]
3
4 use std::ops::{Generator, GeneratorState};
5 use std::pin::Pin;
6
7 fn main() {
8     let mut generator = || {
9         yield 1;
10         return "foo"
11     };
12
13     match Pin::new(&mut generator).resume(()) {
14         GeneratorState::Yielded(1) => {}
15         _ => panic!("unexpected value from resume"),
16     }
17     match Pin::new(&mut generator).resume(()) {
18         GeneratorState::Complete("foo") => {}
19         _ => panic!("unexpected value from resume"),
20     }
21
22     let mut generator = || {
23         yield 1;
24         yield 2;
25         yield 3;
26         return "foo"
27     };
28
29     match Pin::new(&mut generator).resume(()) {
30         GeneratorState::Yielded(1) => {}
31         _ => panic!("unexpected value from resume"),
32     }
33     match Pin::new(&mut generator).resume(()) {
34         GeneratorState::Yielded(2) => {}
35         _ => panic!("unexpected value from resume"),
36     }
37 }