- // MIR for `main` before DataflowConstProp + // MIR for `main` after DataflowConstProp fn main() -> () { let mut _0: (); let _1: i32; let mut _3: bool; let mut _4: i32; let mut _6: i32; let mut _8: bool; let mut _9: i32; let mut _10: i32; let mut _12: i32; scope 1 { debug a => _1; let _2: i32; scope 2 { debug b => _2; let _5: i32; scope 3 { debug c => _5; let _7: i32; scope 4 { debug d => _7; let _11: i32; scope 5 { debug e => _11; } } } } } bb0: { StorageLive(_1); _1 = const 1_i32; StorageLive(_2); StorageLive(_3); StorageLive(_4); - _4 = _1; - _3 = Eq(move _4, const 1_i32); + _4 = const 1_i32; + _3 = const true; StorageDead(_4); - switchInt(move _3) -> [0: bb2, otherwise: bb1]; + switchInt(const true) -> [0: bb2, otherwise: bb1]; } bb1: { _2 = const 2_i32; goto -> bb3; } bb2: { _2 = const 3_i32; goto -> bb3; } bb3: { StorageDead(_3); StorageLive(_5); StorageLive(_6); - _6 = _2; - _5 = Add(move _6, const 1_i32); + _6 = const 2_i32; + _5 = const 3_i32; StorageDead(_6); StorageLive(_7); StorageLive(_8); StorageLive(_9); - _9 = _1; - _8 = Eq(move _9, const 1_i32); + _9 = const 1_i32; + _8 = const true; StorageDead(_9); - switchInt(move _8) -> [0: bb5, otherwise: bb4]; + switchInt(const true) -> [0: bb5, otherwise: bb4]; } bb4: { - _7 = _1; + _7 = const 1_i32; goto -> bb6; } bb5: { StorageLive(_10); _10 = _1; _7 = Add(move _10, const 1_i32); StorageDead(_10); goto -> bb6; } bb6: { StorageDead(_8); StorageLive(_11); StorageLive(_12); - _12 = _7; - _11 = Add(move _12, const 1_i32); + _12 = const 1_i32; + _11 = const 2_i32; StorageDead(_12); _0 = const (); StorageDead(_11); StorageDead(_7); StorageDead(_5); StorageDead(_2); StorageDead(_1); return; } }