1 // See https://github.com/rust-lang/unsafe-code-guidelines/issues/148:
2 // this fails when Stacked Borrows is strictly applied even to `!Unpin` types.
3 #![feature(generators, generator_trait)]
6 ops::{Generator, GeneratorState},
10 fn firstn() -> impl Generator<Yield = u64, Return = ()> {
16 *num += 1; // would fail here
27 let mut generator_iterator = firstn();
28 let mut pin = unsafe { Pin::new_unchecked(&mut generator_iterator) };
30 while let GeneratorState::Yielded(x) = pin.as_mut().resume(()) {