1 - // MIR for `complicated_match` after SimplifyCfg-initial
2 + // MIR for `complicated_match` after ElaborateDrops
4 fn complicated_match(_1: bool, _2: (bool, bool, String)) -> i32 {
5 debug cond => _1; // in scope 0 at $DIR/match-arm-scopes.rs:13:22: 13:26
6 debug items => _2; // in scope 0 at $DIR/match-arm-scopes.rs:13:34: 13:39
7 let mut _0: i32; // return place in scope 0 at $DIR/match-arm-scopes.rs:13:66: 13:69
8 let mut _3: &bool; // in scope 0 at $DIR/match-arm-scopes.rs:14:11: 14:16
9 let mut _4: &bool; // in scope 0 at $DIR/match-arm-scopes.rs:14:11: 14:16
10 let _5: bool; // in scope 0 at $DIR/match-arm-scopes.rs:15:17: 15:18
11 let _6: &bool; // in scope 0 at $DIR/match-arm-scopes.rs:15:17: 15:18
12 let _7: std::string::String; // in scope 0 at $DIR/match-arm-scopes.rs:15:20: 15:21
13 let _8: &std::string::String; // in scope 0 at $DIR/match-arm-scopes.rs:15:20: 15:21
14 let mut _9: bool; // in scope 0 at $DIR/match-arm-scopes.rs:15:42: 15:73
15 let mut _10: bool; // in scope 0 at $DIR/match-arm-scopes.rs:15:45: 15:49
16 let mut _11: !; // in scope 0 at $DIR/match-arm-scopes.rs:15:52: 15:60
17 let mut _12: bool; // in scope 0 at $DIR/match-arm-scopes.rs:15:42: 15:73
18 let mut _13: bool; // in scope 0 at $DIR/match-arm-scopes.rs:15:45: 15:49
19 let mut _14: !; // in scope 0 at $DIR/match-arm-scopes.rs:15:52: 15:60
20 let _15: bool; // in scope 0 at $DIR/match-arm-scopes.rs:16:16: 16:17
21 let _16: std::string::String; // in scope 0 at $DIR/match-arm-scopes.rs:16:19: 16:20
23 debug a => _5; // in scope 1 at $DIR/match-arm-scopes.rs:15:17: 15:18
24 debug a => _6; // in scope 1 at $DIR/match-arm-scopes.rs:15:17: 15:18
25 debug s => _7; // in scope 1 at $DIR/match-arm-scopes.rs:15:20: 15:21
26 debug s => _8; // in scope 1 at $DIR/match-arm-scopes.rs:15:20: 15:21
33 debug b => _15; // in scope 4 at $DIR/match-arm-scopes.rs:16:16: 16:17
34 debug t => _16; // in scope 4 at $DIR/match-arm-scopes.rs:16:19: 16:20
38 - FakeRead(ForMatchedPlace(None), _2); // scope 0 at $DIR/match-arm-scopes.rs:14:11: 14:16
39 - switchInt((_2.0: bool)) -> [false: bb1, otherwise: bb2]; // scope 0 at $DIR/match-arm-scopes.rs:14:5: 14:16
40 + switchInt((_2.0: bool)) -> [false: bb5, otherwise: bb1]; // scope 0 at $DIR/match-arm-scopes.rs:14:5: 14:16
44 - falseEdge -> [real: bb8, imaginary: bb3]; // scope 0 at $DIR/match-arm-scopes.rs:15:9: 15:22
45 + switchInt((_2.1: bool)) -> [false: bb10, otherwise: bb2]; // scope 0 at $DIR/match-arm-scopes.rs:14:5: 14:16
49 - switchInt((_2.1: bool)) -> [false: bb3, otherwise: bb4]; // scope 0 at $DIR/match-arm-scopes.rs:14:5: 14:16
50 + switchInt((_2.0: bool)) -> [false: bb3, otherwise: bb17]; // scope 0 at $DIR/match-arm-scopes.rs:14:5: 14:16
54 - falseEdge -> [real: bb13, imaginary: bb5]; // scope 0 at $DIR/match-arm-scopes.rs:15:25: 15:38
58 - switchInt((_2.0: bool)) -> [false: bb6, otherwise: bb5]; // scope 0 at $DIR/match-arm-scopes.rs:14:5: 14:16
62 - falseEdge -> [real: bb20, imaginary: bb6]; // scope 0 at $DIR/match-arm-scopes.rs:16:9: 16:21
66 StorageLive(_15); // scope 0 at $DIR/match-arm-scopes.rs:16:32: 16:33
67 _15 = (_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:16:32: 16:33
68 StorageLive(_16); // scope 0 at $DIR/match-arm-scopes.rs:16:35: 16:36
69 _16 = move (_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:16:35: 16:36
70 - goto -> bb19; // scope 0 at $DIR/match-arm-scopes.rs:14:5: 17:6
71 + goto -> bb16; // scope 0 at $DIR/match-arm-scopes.rs:14:5: 17:6
76 _0 = const 1_i32; // scope 1 at $DIR/match-arm-scopes.rs:15:77: 15:78
77 - drop(_7) -> [return: bb18, unwind: bb25]; // scope 0 at $DIR/match-arm-scopes.rs:15:77: 15:78
78 + drop(_7) -> [return: bb15, unwind: bb22]; // scope 0 at $DIR/match-arm-scopes.rs:15:77: 15:78
83 StorageLive(_6); // scope 0 at $DIR/match-arm-scopes.rs:15:17: 15:18
84 _6 = &(_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:15:17: 15:18
85 StorageLive(_8); // scope 0 at $DIR/match-arm-scopes.rs:15:20: 15:21
86 _8 = &(_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:15:20: 15:21
87 - _3 = &shallow (_2.0: bool); // scope 0 at $DIR/match-arm-scopes.rs:14:11: 14:16
88 - _4 = &shallow (_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:14:11: 14:16
89 StorageLive(_9); // scope 0 at $DIR/match-arm-scopes.rs:15:42: 15:73
90 StorageLive(_10); // scope 2 at $DIR/match-arm-scopes.rs:15:45: 15:49
91 _10 = _1; // scope 2 at $DIR/match-arm-scopes.rs:15:45: 15:49
92 - switchInt(move _10) -> [false: bb10, otherwise: bb9]; // scope 2 at $DIR/match-arm-scopes.rs:15:45: 15:49
93 + switchInt(move _10) -> [false: bb7, otherwise: bb6]; // scope 2 at $DIR/match-arm-scopes.rs:15:45: 15:49
98 _0 = const 3_i32; // scope 2 at $DIR/match-arm-scopes.rs:15:59: 15:60
99 StorageDead(_10); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
100 StorageDead(_9); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
101 - goto -> bb23; // scope 0 at no-location
102 + goto -> bb20; // scope 0 at no-location
107 _9 = (*_6); // scope 0 at $DIR/match-arm-scopes.rs:15:70: 15:71
108 - switchInt(move _9) -> [false: bb12, otherwise: bb11]; // scope 0 at $DIR/match-arm-scopes.rs:15:42: 15:73
109 + switchInt(move _9) -> [false: bb9, otherwise: bb8]; // scope 0 at $DIR/match-arm-scopes.rs:15:42: 15:73
114 StorageDead(_10); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
115 StorageDead(_9); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
116 - FakeRead(ForMatchGuard, _3); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
117 - FakeRead(ForMatchGuard, _4); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
118 - FakeRead(ForGuardBinding, _6); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
119 - FakeRead(ForGuardBinding, _8); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
120 StorageLive(_5); // scope 0 at $DIR/match-arm-scopes.rs:15:17: 15:18
121 _5 = (_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:15:17: 15:18
122 StorageLive(_7); // scope 0 at $DIR/match-arm-scopes.rs:15:20: 15:21
123 _7 = move (_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:15:20: 15:21
124 - goto -> bb7; // scope 0 at $DIR/match-arm-scopes.rs:14:5: 17:6
125 + goto -> bb4; // scope 0 at $DIR/match-arm-scopes.rs:14:5: 17:6
130 StorageDead(_10); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
131 StorageDead(_9); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
132 StorageDead(_8); // scope 0 at $DIR/match-arm-scopes.rs:15:77: 15:78
133 StorageDead(_6); // scope 0 at $DIR/match-arm-scopes.rs:15:77: 15:78
134 - falseEdge -> [real: bb2, imaginary: bb3]; // scope 0 at $DIR/match-arm-scopes.rs:15:42: 15:73
135 + goto -> bb1; // scope 0 at $DIR/match-arm-scopes.rs:15:42: 15:73
140 StorageLive(_6); // scope 0 at $DIR/match-arm-scopes.rs:15:26: 15:27
141 _6 = &(_2.0: bool); // scope 0 at $DIR/match-arm-scopes.rs:15:26: 15:27
142 StorageLive(_8); // scope 0 at $DIR/match-arm-scopes.rs:15:36: 15:37
143 _8 = &(_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:15:36: 15:37
144 - _3 = &shallow (_2.0: bool); // scope 0 at $DIR/match-arm-scopes.rs:14:11: 14:16
145 - _4 = &shallow (_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:14:11: 14:16
146 StorageLive(_12); // scope 0 at $DIR/match-arm-scopes.rs:15:42: 15:73
147 StorageLive(_13); // scope 3 at $DIR/match-arm-scopes.rs:15:45: 15:49
148 _13 = _1; // scope 3 at $DIR/match-arm-scopes.rs:15:45: 15:49
149 - switchInt(move _13) -> [false: bb15, otherwise: bb14]; // scope 3 at $DIR/match-arm-scopes.rs:15:45: 15:49
150 + switchInt(move _13) -> [false: bb12, otherwise: bb11]; // scope 3 at $DIR/match-arm-scopes.rs:15:45: 15:49
155 _0 = const 3_i32; // scope 3 at $DIR/match-arm-scopes.rs:15:59: 15:60
156 StorageDead(_13); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
157 StorageDead(_12); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
158 - goto -> bb23; // scope 0 at no-location
159 + goto -> bb20; // scope 0 at no-location
164 _12 = (*_6); // scope 0 at $DIR/match-arm-scopes.rs:15:70: 15:71
165 - switchInt(move _12) -> [false: bb17, otherwise: bb16]; // scope 0 at $DIR/match-arm-scopes.rs:15:42: 15:73
166 + switchInt(move _12) -> [false: bb14, otherwise: bb13]; // scope 0 at $DIR/match-arm-scopes.rs:15:42: 15:73
171 StorageDead(_13); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
172 StorageDead(_12); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
173 - FakeRead(ForMatchGuard, _3); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
174 - FakeRead(ForMatchGuard, _4); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
175 - FakeRead(ForGuardBinding, _6); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
176 - FakeRead(ForGuardBinding, _8); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
177 StorageLive(_5); // scope 0 at $DIR/match-arm-scopes.rs:15:26: 15:27
178 _5 = (_2.0: bool); // scope 0 at $DIR/match-arm-scopes.rs:15:26: 15:27
179 StorageLive(_7); // scope 0 at $DIR/match-arm-scopes.rs:15:36: 15:37
180 _7 = move (_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:15:36: 15:37
181 - goto -> bb7; // scope 0 at $DIR/match-arm-scopes.rs:14:5: 17:6
182 + goto -> bb4; // scope 0 at $DIR/match-arm-scopes.rs:14:5: 17:6
187 StorageDead(_13); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
188 StorageDead(_12); // scope 0 at $DIR/match-arm-scopes.rs:15:72: 15:73
189 StorageDead(_8); // scope 0 at $DIR/match-arm-scopes.rs:15:77: 15:78
190 StorageDead(_6); // scope 0 at $DIR/match-arm-scopes.rs:15:77: 15:78
191 - falseEdge -> [real: bb4, imaginary: bb5]; // scope 0 at $DIR/match-arm-scopes.rs:15:42: 15:73
192 + goto -> bb2; // scope 0 at $DIR/match-arm-scopes.rs:15:42: 15:73
197 StorageDead(_7); // scope 0 at $DIR/match-arm-scopes.rs:15:77: 15:78
198 StorageDead(_5); // scope 0 at $DIR/match-arm-scopes.rs:15:77: 15:78
199 StorageDead(_8); // scope 0 at $DIR/match-arm-scopes.rs:15:77: 15:78
200 StorageDead(_6); // scope 0 at $DIR/match-arm-scopes.rs:15:77: 15:78
201 - goto -> bb22; // scope 0 at $DIR/match-arm-scopes.rs:15:77: 15:78
202 + goto -> bb19; // scope 0 at $DIR/match-arm-scopes.rs:15:77: 15:78
207 _0 = const 2_i32; // scope 4 at $DIR/match-arm-scopes.rs:16:41: 16:42
208 - drop(_16) -> [return: bb21, unwind: bb25]; // scope 0 at $DIR/match-arm-scopes.rs:16:41: 16:42
209 + drop(_16) -> [return: bb18, unwind: bb22]; // scope 0 at $DIR/match-arm-scopes.rs:16:41: 16:42
214 StorageLive(_15); // scope 0 at $DIR/match-arm-scopes.rs:16:16: 16:17
215 _15 = (_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:16:16: 16:17
216 StorageLive(_16); // scope 0 at $DIR/match-arm-scopes.rs:16:19: 16:20
217 _16 = move (_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:16:19: 16:20
218 - goto -> bb19; // scope 0 at $DIR/match-arm-scopes.rs:14:5: 17:6
219 + goto -> bb16; // scope 0 at $DIR/match-arm-scopes.rs:14:5: 17:6
224 StorageDead(_16); // scope 0 at $DIR/match-arm-scopes.rs:16:41: 16:42
225 StorageDead(_15); // scope 0 at $DIR/match-arm-scopes.rs:16:41: 16:42
226 - goto -> bb22; // scope 0 at $DIR/match-arm-scopes.rs:16:41: 16:42
227 + goto -> bb19; // scope 0 at $DIR/match-arm-scopes.rs:16:41: 16:42
231 - drop(_2) -> [return: bb24, unwind: bb26]; // scope 0 at $DIR/match-arm-scopes.rs:18:1: 18:2
233 + goto -> bb26; // scope 0 at $DIR/match-arm-scopes.rs:18:1: 18:2
238 StorageDead(_8); // scope 0 at $DIR/match-arm-scopes.rs:15:77: 15:78
239 StorageDead(_6); // scope 0 at $DIR/match-arm-scopes.rs:15:77: 15:78
240 - drop(_2) -> [return: bb24, unwind: bb26]; // scope 0 at $DIR/match-arm-scopes.rs:18:1: 18:2
241 + drop(_2) -> [return: bb21, unwind: bb23]; // scope 0 at $DIR/match-arm-scopes.rs:18:1: 18:2
246 return; // scope 0 at $DIR/match-arm-scopes.rs:18:2: 18:2
250 - drop(_2) -> bb26; // scope 0 at $DIR/match-arm-scopes.rs:18:1: 18:2
252 + goto -> bb27; // scope 0 at $DIR/match-arm-scopes.rs:18:1: 18:2
257 resume; // scope 0 at $DIR/match-arm-scopes.rs:13:1: 18:2
261 + goto -> bb21; // scope 0 at $DIR/match-arm-scopes.rs:18:1: 18:2
265 + goto -> bb23; // scope 0 at $DIR/match-arm-scopes.rs:18:1: 18:2
269 + goto -> bb24; // scope 0 at $DIR/match-arm-scopes.rs:18:1: 18:2
273 + goto -> bb23; // scope 0 at $DIR/match-arm-scopes.rs:18:1: 18:2