- // MIR for `poll` before EarlyOtherwiseBranch + // MIR for `poll` after EarlyOtherwiseBranch fn poll(_1: Poll>, u8>>) -> () { debug val => _1; let mut _0: (); let mut _2: isize; let mut _3: isize; let mut _4: isize; let _5: std::vec::Vec; let _6: u8; let mut _7: bool; let mut _8: bool; let mut _9: isize; scope 1 { debug _trailers => _5; } scope 2 { debug _err => _6; } bb0: { _7 = const false; _8 = const false; _7 = const true; _8 = const true; _4 = discriminant(_1); switchInt(copy _4) -> [0: bb2, 1: bb4, otherwise: bb1]; } bb1: { unreachable; } bb2: { _3 = discriminant(((_1 as Ready).0: std::result::Result>, u8>)); switchInt(copy _3) -> [0: bb3, 1: bb6, otherwise: bb1]; } bb3: { _2 = discriminant(((((_1 as Ready).0: std::result::Result>, u8>) as Ok).0: std::option::Option>)); switchInt(copy _2) -> [0: bb5, 1: bb7, otherwise: bb1]; } bb4: { _0 = const (); goto -> bb17; } bb5: { _0 = const (); goto -> bb17; } bb6: { StorageLive(_6); _6 = copy ((((_1 as Ready).0: std::result::Result>, u8>) as Err).0: u8); _0 = const (); StorageDead(_6); goto -> bb17; } bb7: { StorageLive(_5); _5 = move ((((((_1 as Ready).0: std::result::Result>, u8>) as Ok).0: std::option::Option>) as Some).0: std::vec::Vec); _0 = const (); drop(_5) -> [return: bb8, unwind: bb20]; } bb8: { StorageDead(_5); goto -> bb17; } bb9 (cleanup): { resume; } bb10: { return; } bb11: { switchInt(copy _7) -> [0: bb12, otherwise: bb16]; } bb12: { _7 = const false; goto -> bb10; } bb13: { switchInt(copy _8) -> [0: bb14, otherwise: bb15]; } bb14: { _8 = const false; goto -> bb12; } bb15: { goto -> bb14; } bb16: { _9 = discriminant(((_1 as Ready).0: std::result::Result>, u8>)); switchInt(move _9) -> [0: bb13, otherwise: bb12]; } bb17: { switchInt(copy _4) -> [0: bb11, otherwise: bb10]; } bb18 (cleanup): { switchInt(copy _3) -> [0: bb19, otherwise: bb9]; } bb19 (cleanup): { goto -> bb9; } bb20 (cleanup): { switchInt(copy _4) -> [0: bb18, otherwise: bb9]; } }