- // MIR for `logical_not` before JumpThreading + // MIR for `logical_not` after JumpThreading fn logical_not() -> i32 { let mut _0: i32; let _1: bool; let mut _2: bool; let mut _3: bool; let mut _4: bool; scope 1 { debug a => _1; } bb0: { StorageLive(_1); _1 = const false; StorageLive(_2); StorageLive(_3); StorageLive(_4); _4 = copy _1; _3 = Not(move _4); StorageDead(_4); _2 = Eq(move _3, const true); - switchInt(move _2) -> [0: bb2, otherwise: bb1]; + goto -> bb1; } bb1: { StorageDead(_3); _0 = const 1_i32; goto -> bb3; } bb2: { StorageDead(_3); _0 = const 0_i32; goto -> bb3; } bb3: { StorageDead(_2); StorageDead(_1); return; } }