- // MIR for `identity` before SeparateConstSwitch + // MIR for `identity` after SeparateConstSwitch fn identity(_1: Result) -> Result { debug x => _1; let mut _0: std::result::Result; let mut _2: std::ops::ControlFlow, i32>; let mut _3: std::result::Result; let mut _4: isize; let _5: std::result::Result; let mut _6: std::result::Result; let _7: i32; scope 1 { debug residual => _5; scope 2 { scope 8 (inlined #[track_caller] as FromResidual>>::from_residual) { debug residual => _6; let _12: i32; scope 9 { debug e => _12; scope 10 (inlined >::from) { debug t => _12; } } } } } scope 3 { debug val => _7; scope 4 { } } scope 5 (inlined as Try>::branch) { debug self => _3; let mut _8: isize; let _9: i32; let _10: i32; let mut _11: std::result::Result; scope 6 { debug v => _9; } scope 7 { debug e => _10; } } bb0: { StorageLive(_2); StorageLive(_3); _3 = _1; StorageLive(_8); StorageLive(_9); StorageLive(_10); _8 = discriminant(_1); switchInt(move _8) -> [0: bb5, 1: bb4, otherwise: bb6]; } bb1: { _7 = ((_2 as Continue).0: i32); _0 = Result::::Ok(_7); StorageDead(_2); return; } bb2: { _5 = ((_2 as Break).0: std::result::Result); StorageLive(_6); _6 = _5; _12 = move ((_5 as Err).0: i32); _0 = Result::::Err(_12); StorageDead(_6); StorageDead(_2); return; } bb3: { StorageDead(_10); StorageDead(_9); StorageDead(_8); StorageDead(_3); _4 = discriminant(_2); switchInt(move _4) -> [0: bb1, 1: bb2, otherwise: bb6]; } bb4: { _10 = move ((_1 as Err).0: i32); StorageLive(_11); _11 = Result::::Err(_10); _2 = ControlFlow::, i32>::Break(move _11); StorageDead(_11); goto -> bb3; } bb5: { _9 = move ((_1 as Ok).0: i32); _2 = ControlFlow::, i32>::Continue(_9); goto -> bb3; } bb6: { unreachable; } }