@0,1,2⦊fn main() ⦉@0,1,2{ let @0,1,2⦊mut generator⦉@0,1,2 = || { yield 1; return "foo" }; match @0,1,2⦊Pin::new(&mut generator).resume(()) { GeneratorState::Yielded(1)⦉@0,1,2 => @4,6,7,8⦊{}⦉@4,6,7,8 _ => @5⦊panic!("unexpected value from resume")⦉@5, } match @4,6,7,8⦊Pin::new(&mut generator).resume(())⦉@4,6,7,8 { GeneratorState::Complete(@10,11⦊"foo"⦉@10,11) => @12,13,14,15⦊{}⦉@12,13,14,15 _ => @9⦊panic!("unexpected value from resume")⦉@9, } let @12,13,14,15⦊mut generator⦉@12,13,14,15 = || { yield 1; yield 2; yield 3; return "foo" }; match @12,13,14,15⦊Pin::new(&mut generator).resume(()) { GeneratorState::Yielded(1)⦉@12,13,14,15 => @17,19,20,21⦊{}⦉@17,19,20,21 _ => @18⦊panic!("unexpected value from resume")⦉@18, } match @17,19,20,21⦊Pin::new(&mut generator).resume(()) { GeneratorState::Yielded(2)⦉@17,19,20,21 => @23,25⦊{}⦉@23,25 _ => @24⦊panic!("unexpected value from resume")⦉@24, } }@23,25⦊⦉@23,25