- // MIR for `dfa` before JumpThreading | |
+ // MIR for `dfa` after JumpThreading | |
fn dfa() -> () { | |
let mut _0: (); | |
let mut _1: DFA; | |
let mut _2: !; | |
let mut _3: (); | |
let mut _4: isize; | |
let mut _5: DFA; | |
let mut _6: DFA; | |
let mut _7: DFA; | |
let mut _8: !; | |
scope 1 { | |
debug state => _1; | |
} | |
bb0: { | |
StorageLive(_1); | |
_1 = DFA::A; | |
StorageLive(_2); | |
goto -> bb1; | |
} | |
bb1: { | |
_4 = discriminant(_1); | |
switchInt(move _4) -> [0: bb6, 1: bb5, 2: bb4, 3: bb3, otherwise: bb2]; | |
} | |
bb2: { | |
unreachable; | |
} | |
bb3: { | |
_0 = const (); | |
StorageDead(_2); | |
StorageDead(_1); | |
return; | |
} | |
bb4: { | |
StorageLive(_7); | |
_7 = DFA::D; | |
_1 = move _7; | |
_3 = const (); | |
StorageDead(_7); | |
goto -> bb1; | |
} | |
bb5: { | |
StorageLive(_6); | |
_6 = DFA::C; | |
_1 = move _6; | |
_3 = const (); | |
StorageDead(_6); | |
goto -> bb1; | |
} | |
bb6: { | |
StorageLive(_5); | |
_5 = DFA::B; | |
_1 = move _5; | |
_3 = const (); | |
StorageDead(_5); | |
goto -> bb1; | |
} | |
} | |