commit
a9505a8fb8
2 changed files with 5 additions and 2 deletions
|
|
@ -1 +1 @@
|
|||
nightly-2019-01-28
|
||||
nightly-2019-01-30
|
||||
|
|
|
|||
|
|
@ -11,12 +11,15 @@
|
|||
#![feature(generators, generator_trait)]
|
||||
|
||||
use std::ops::{GeneratorState, Generator};
|
||||
use std::pin::Pin;
|
||||
|
||||
fn finish<T>(mut amt: usize, mut t: T) -> T::Return
|
||||
where T: Generator<Yield = usize>
|
||||
{
|
||||
// We are not moving the `t` around until it gets dropped, so this is okay.
|
||||
let mut t = unsafe { Pin::new_unchecked(&mut t) };
|
||||
loop {
|
||||
match unsafe { t.resume() } {
|
||||
match t.as_mut().resume() {
|
||||
GeneratorState::Yielded(y) => amt -= y,
|
||||
GeneratorState::Complete(ret) => {
|
||||
assert_eq!(amt, 0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue