3 #![feature(generators, generator_trait)]
5 use std
::marker
::Unpin
;
6 use std
::ops
::{GeneratorState, Generator}
;
9 fn finish
<T
>(mut amt
: usize, mut t
: T
) -> T
::Return
10 where T
: Generator
<Yield
= ()> + Unpin
,
13 match Pin
::new(&mut t
).resume() {
14 GeneratorState
::Yielded(()) => amt
= amt
.checked_sub(1).unwrap(),
15 GeneratorState
::Complete(ret
) => {