- // MIR for `aggregate` before JumpThreading + // MIR for `aggregate` after JumpThreading fn aggregate(_1: u8) -> u8 { debug x => _1; let mut _0: u8; let _2: u8; let _3: u8; let mut _4: (u8, u8); let mut _5: bool; let mut _6: u8; scope 1 { debug a => _2; debug b => _3; } bb0: { StorageLive(_4); _4 = const aggregate::FOO; StorageLive(_2); _2 = copy (_4.0: u8); StorageLive(_3); _3 = copy (_4.1: u8); StorageDead(_4); StorageLive(_5); StorageLive(_6); _6 = copy _2; _5 = Eq(move _6, const 7_u8); - switchInt(move _5) -> [0: bb2, otherwise: bb1]; + goto -> bb2; } bb1: { StorageDead(_6); _0 = copy _3; goto -> bb3; } bb2: { StorageDead(_6); _0 = copy _2; goto -> bb3; } bb3: { StorageDead(_5); StorageDead(_3); StorageDead(_2); return; } }