1 - // MIR for `main` before SimplifyArmIdentity
2 + // MIR for `main` after SimplifyArmIdentity
5 let mut _0: (); // return place in scope 0 at $DIR/issue_73223.rs:+0:11: +0:11
6 let _1: i32; // in scope 0 at $DIR/issue_73223.rs:+1:9: +1:14
7 let mut _2: std::option::Option<i32>; // in scope 0 at $DIR/issue_73223.rs:+1:23: +1:30
8 let mut _3: isize; // in scope 0 at $DIR/issue_73223.rs:+2:9: +2:16
9 let _4: i32; // in scope 0 at $DIR/issue_73223.rs:+2:14: +2:15
10 let mut _6: i32; // in scope 0 at $DIR/issue_73223.rs:+6:22: +6:27
11 let mut _7: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
12 let mut _8: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
13 let mut _11: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
14 let mut _12: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
15 let mut _13: i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
16 let mut _14: i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
17 let _16: !; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
18 let mut _17: core::panicking::AssertKind; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
19 let mut _18: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
20 let _19: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
21 let mut _20: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
22 let _21: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
23 let mut _22: std::option::Option<std::fmt::Arguments<'_>>; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
24 let mut _24: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
25 let mut _25: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
27 debug split => _1; // in scope 1 at $DIR/issue_73223.rs:+1:9: +1:14
28 let _5: std::option::Option<i32>; // in scope 1 at $DIR/issue_73223.rs:+6:9: +6:14
30 debug _prev => _5; // in scope 3 at $DIR/issue_73223.rs:+6:9: +6:14
31 let _9: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
32 let _10: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
33 let mut _23: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
35 debug left_val => _9; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
36 debug right_val => _10; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
37 let _15: core::panicking::AssertKind; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
39 debug kind => _15; // in scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
45 debug v => _4; // in scope 2 at $DIR/issue_73223.rs:+2:14: +2:15
49 StorageLive(_1); // scope 0 at $DIR/issue_73223.rs:+1:9: +1:14
50 StorageLive(_2); // scope 0 at $DIR/issue_73223.rs:+1:23: +1:30
51 Deinit(_2); // scope 0 at $DIR/issue_73223.rs:+1:23: +1:30
52 ((_2 as Some).0: i32) = const 1_i32; // scope 0 at $DIR/issue_73223.rs:+1:23: +1:30
53 discriminant(_2) = 1; // scope 0 at $DIR/issue_73223.rs:+1:23: +1:30
54 _3 = const 1_isize; // scope 0 at $DIR/issue_73223.rs:+1:23: +1:30
55 goto -> bb3; // scope 0 at $DIR/issue_73223.rs:+1:17: +1:30
59 StorageDead(_2); // scope 0 at $DIR/issue_73223.rs:+4:6: +4:7
60 StorageDead(_1); // scope 0 at $DIR/issue_73223.rs:+8:1: +8:2
61 return; // scope 0 at $DIR/issue_73223.rs:+8:2: +8:2
65 unreachable; // scope 0 at $DIR/issue_73223.rs:+1:23: +1:30
69 StorageLive(_4); // scope 0 at $DIR/issue_73223.rs:+2:14: +2:15
70 _4 = ((_2 as Some).0: i32); // scope 0 at $DIR/issue_73223.rs:+2:14: +2:15
71 _1 = _4; // scope 2 at $DIR/issue_73223.rs:+2:20: +2:21
72 StorageDead(_4); // scope 0 at $DIR/issue_73223.rs:+2:20: +2:21
73 StorageDead(_2); // scope 0 at $DIR/issue_73223.rs:+4:6: +4:7
74 StorageLive(_5); // scope 1 at $DIR/issue_73223.rs:+6:9: +6:14
75 StorageLive(_6); // scope 1 at $DIR/issue_73223.rs:+6:22: +6:27
76 _6 = _1; // scope 1 at $DIR/issue_73223.rs:+6:22: +6:27
77 Deinit(_5); // scope 1 at $DIR/issue_73223.rs:+6:17: +6:28
78 ((_5 as Some).0: i32) = move _6; // scope 1 at $DIR/issue_73223.rs:+6:17: +6:28
79 discriminant(_5) = 1; // scope 1 at $DIR/issue_73223.rs:+6:17: +6:28
80 StorageDead(_6); // scope 1 at $DIR/issue_73223.rs:+6:27: +6:28
81 StorageLive(_24); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
82 StorageLive(_25); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
83 StorageLive(_7); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
84 _7 = &_1; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
85 StorageLive(_8); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
86 _23 = const _; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
88 // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
89 // + literal: Const { ty: &i32, val: Unevaluated(main, [], Some(promoted[0])) }
90 _8 = _23; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
91 Deinit(_24); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
92 Deinit(_25); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
93 _24 = move _7; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
94 _25 = move _8; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
95 StorageDead(_8); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
96 StorageDead(_7); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
97 StorageLive(_9); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
98 _9 = _24; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
99 StorageLive(_10); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
100 _10 = _25; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
101 StorageLive(_11); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
102 StorageLive(_12); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
103 StorageLive(_13); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
104 _13 = (*_9); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
105 StorageLive(_14); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
106 _14 = const 1_i32; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
107 _12 = Eq(move _13, const 1_i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
108 StorageDead(_14); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
109 StorageDead(_13); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
110 _11 = Not(move _12); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
111 StorageDead(_12); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
112 switchInt(move _11) -> [0: bb5, otherwise: bb4]; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
116 StorageLive(_15); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
117 Deinit(_15); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
118 discriminant(_15) = 0; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
119 StorageLive(_16); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
120 StorageLive(_17); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
121 _17 = const core::panicking::AssertKind::Eq; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
123 // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
124 // + literal: Const { ty: core::panicking::AssertKind, val: Value(Scalar(0x00)) }
125 StorageLive(_18); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
126 StorageLive(_19); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
127 _19 = _9; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
128 _18 = _19; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
129 StorageLive(_20); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
130 StorageLive(_21); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
131 _21 = _10; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
132 _20 = _21; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
133 StorageLive(_22); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
134 Deinit(_22); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
135 discriminant(_22) = 0; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
136 _16 = core::panicking::assert_failed::<i32, i32>(const core::panicking::AssertKind::Eq, move _18, move _20, move _22); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
138 // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
139 // + literal: Const { ty: for<'a, 'b, 'c> fn(core::panicking::AssertKind, &'a i32, &'b i32, Option<Arguments<'c>>) -> ! {core::panicking::assert_failed::<i32, i32>}, val: Value(<ZST>) }
141 // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
142 // + literal: Const { ty: core::panicking::AssertKind, val: Value(Scalar(0x00)) }
146 StorageDead(_11); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
147 StorageDead(_10); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
148 StorageDead(_9); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
149 StorageDead(_24); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
150 StorageDead(_25); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
151 StorageDead(_5); // scope 1 at $DIR/issue_73223.rs:+8:1: +8:2
152 StorageDead(_1); // scope 0 at $DIR/issue_73223.rs:+8:1: +8:2
153 return; // scope 0 at $DIR/issue_73223.rs:+8:2: +8:2