]> git.proxmox.com Git - rustc.git/blob - src/test/ui/generator/static-generators.rs
New upstream version 1.48.0~beta.8+dfsg1
[rustc.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 }