3 // revisions: default nomiropt
4 //[nomiropt]compile-flags: -Z mir-opt-level=0
6 #![feature(generators, generator_trait)]
8 use std::marker::Unpin;
9 use std::ops::{GeneratorState, Generator};
12 fn finish<T>(mut amt: usize, mut t: T) -> T::Return
13 where T: Generator<(), Yield = ()> + Unpin,
16 match Pin::new(&mut t).resume(()) {
17 GeneratorState::Yielded(()) => amt = amt.checked_sub(1).unwrap(),
18 GeneratorState::Complete(ret) => {