bb2
(on entry)
MIR
STATE
→ StorageDead(_3)
{_2, _4}
1 1 = std::option:: Option:: <std::string:: String>:: Some (move 2,)
+1, (1 as Some),
((_1 as Some).0: std::string:: String)
-2
T drop(_2)
(on exit)
{1, 4, (1 as Some),
((_1 as Some).0: std::string:: String)}
return
bb3
MIR
STATE
(on entry)
{1, 4, (1 as Some),
((_1 as Some).0: std::string:: String)}
→ StorageDead(_2)
1 FakeRead (ForLet, _1)
2 StorageDead(_4)
- 4
3 StorageLive(_5)
4 FakeRead (ForMatchedPlace, 1)
56 = discriminant(_1)
+ 6
TswitchInt (move_6)
- 6
{_1, (1 as Some),
(on exit)
((_1 as Some).0: std::string:: String)}
Misize
otherwise
Explanation
The image shows a control flow graph with two basic blocks (bb2 and bb3) representing code execution. Each block displays its MIR (Mid-level Intermediate Representation) code and the STATE of variables at the entry and exit points. The arrows between blocks illustrate the flow of execution from bb2 to bb3.