3 #![feature(generators, generator_trait)]
5 use std::ops::{Generator, GeneratorState};
8 fn foo(_: &str) -> String {
12 fn bar(baz: String) -> impl Generator<(), Yield = String, Return = ()> {
18 fn foo2(_: &str) -> Result<String, ()> {
22 fn bar2(baz: String) -> impl Generator<(), Yield = String, Return = ()> {
24 if let Ok(quux) = foo2(&baz) {
32 Pin::new(&mut bar(String::new())).resume(()),
33 GeneratorState::Yielded(String::new())
35 assert_eq!(Pin::new(&mut bar2(String::new())).resume(()), GeneratorState::Complete(()));