| // MIR for `main::{closure#0}` 0 generator_resume |
| /* generator_layout = GeneratorLayout { |
| field_tys: { |
| _0: GeneratorSavedTy { |
| ty: HasDrop, |
| source_info: SourceInfo { |
| span: $DIR/generator_tiny.rs:20:13: 20:15 (#0), |
| scope: scope[0], |
| }, |
| ignore_for_traits: false, |
| }, |
| }, |
| variant_fields: { |
| Unresumed(0): [], |
| Returned (1): [], |
| Panicked (2): [], |
| Suspend0 (3): [_0], |
| }, |
| storage_conflicts: BitMatrix(1x1) { |
| (_0, _0), |
| }, |
| } */ |
| |
| fn main::{closure#0}(_1: Pin<&mut {generator@$DIR/generator_tiny.rs:19:16: 19:24}>, _2: u8) -> GeneratorState<(), ()> { |
| debug _x => _10; |
| let mut _0: std::ops::GeneratorState<(), ()>; |
| let _3: HasDrop; |
| let mut _4: !; |
| let mut _5: (); |
| let _6: u8; |
| let mut _7: (); |
| let _8: (); |
| let mut _9: (); |
| let _10: u8; |
| let mut _11: u32; |
| scope 1 { |
| debug _d => (((*(_1.0: &mut {generator@$DIR/generator_tiny.rs:19:16: 19:24})) as variant#3).0: HasDrop); |
| } |
| |
| bb0: { |
| _11 = discriminant((*(_1.0: &mut {generator@$DIR/generator_tiny.rs:19:16: 19:24}))); |
| switchInt(move _11) -> [0: bb1, 3: bb5, otherwise: bb6]; |
| } |
| |
| bb1: { |
| _10 = move _2; |
| nop; |
| (((*(_1.0: &mut {generator@$DIR/generator_tiny.rs:19:16: 19:24})) as variant#3).0: HasDrop) = HasDrop; |
| StorageLive(_4); |
| goto -> bb2; |
| } |
| |
| bb2: { |
| StorageLive(_6); |
| StorageLive(_7); |
| _7 = (); |
| _0 = GeneratorState::<(), ()>::Yielded(move _7); |
| discriminant((*(_1.0: &mut {generator@$DIR/generator_tiny.rs:19:16: 19:24}))) = 3; |
| return; |
| } |
| |
| bb3: { |
| StorageDead(_7); |
| StorageDead(_6); |
| StorageLive(_8); |
| _8 = callee() -> [return: bb4, unwind unreachable]; |
| } |
| |
| bb4: { |
| StorageDead(_8); |
| _5 = const (); |
| goto -> bb2; |
| } |
| |
| bb5: { |
| StorageLive(_4); |
| StorageLive(_6); |
| StorageLive(_7); |
| _6 = move _2; |
| goto -> bb3; |
| } |
| |
| bb6: { |
| unreachable; |
| } |
| } |