]> git.lizzy.rs Git - rust.git/blob - src/test/ui/generator/static-generators.rs
Auto merge of #98051 - davidtwco:split-dwarf-stabilization, r=wesleywiser
[rust.git] / src / test / ui / generator / static-generators.rs
1 // run-pass
2
3 #![feature(generators, generator_trait)]
4
5 use std::pin::Pin;
6 use std::ops::{Generator, GeneratorState};
7
8 fn main() {
9     let mut generator = static || {
10         let a = true;
11         let b = &a;
12         yield;
13         assert_eq!(b as *const _, &a as *const _);
14     };
15     // SAFETY: We shadow the original generator variable so have no safe API to
16     // move it after this point.
17     let mut generator = unsafe { Pin::new_unchecked(&mut generator) };
18     assert_eq!(generator.as_mut().resume(()), GeneratorState::Yielded(()));
19     assert_eq!(generator.as_mut().resume(()), GeneratorState::Complete(()));
20 }