1 // MIR for `complicated_match` after SimplifyCfg-initial
3 fn complicated_match(_1: bool, _2: (bool, bool, std::string::String)) -> i32 {
4 debug cond => _1; // in scope 0 at $DIR/match-arm-scopes.rs:14:22: 14:26
5 debug items => _2; // in scope 0 at $DIR/match-arm-scopes.rs:14:34: 14:39
6 let mut _0: i32; // return place in scope 0 at $DIR/match-arm-scopes.rs:14:66: 14:69
7 let mut _3: &bool; // in scope 0 at $DIR/match-arm-scopes.rs:15:11: 15:16
8 let mut _4: &bool; // in scope 0 at $DIR/match-arm-scopes.rs:15:11: 15:16
9 let _5: bool; // in scope 0 at $DIR/match-arm-scopes.rs:16:17: 16:18
10 let _6: &bool; // in scope 0 at $DIR/match-arm-scopes.rs:16:17: 16:18
11 let _7: std::string::String; // in scope 0 at $DIR/match-arm-scopes.rs:16:20: 16:21
12 let _8: &std::string::String; // in scope 0 at $DIR/match-arm-scopes.rs:16:20: 16:21
13 let mut _9: bool; // in scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73
14 let mut _10: bool; // in scope 0 at $DIR/match-arm-scopes.rs:16:45: 16:49
15 let mut _11: !; // in scope 0 at $DIR/match-arm-scopes.rs:16:52: 16:60
16 let mut _12: bool; // in scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73
17 let mut _13: bool; // in scope 0 at $DIR/match-arm-scopes.rs:16:45: 16:49
18 let mut _14: !; // in scope 0 at $DIR/match-arm-scopes.rs:16:52: 16:60
19 let _15: bool; // in scope 0 at $DIR/match-arm-scopes.rs:17:16: 17:17
20 let _16: std::string::String; // in scope 0 at $DIR/match-arm-scopes.rs:17:19: 17:20
22 debug a => _5; // in scope 1 at $DIR/match-arm-scopes.rs:16:17: 16:18
23 debug a => _6; // in scope 1 at $DIR/match-arm-scopes.rs:16:17: 16:18
24 debug s => _7; // in scope 1 at $DIR/match-arm-scopes.rs:16:20: 16:21
25 debug s => _8; // in scope 1 at $DIR/match-arm-scopes.rs:16:20: 16:21
28 debug b => _15; // in scope 2 at $DIR/match-arm-scopes.rs:17:16: 17:17
29 debug t => _16; // in scope 2 at $DIR/match-arm-scopes.rs:17:19: 17:20
33 FakeRead(ForMatchedPlace, _2); // scope 0 at $DIR/match-arm-scopes.rs:15:11: 15:16
34 switchInt((_2.0: bool)) -> [false: bb2, otherwise: bb3]; // scope 0 at $DIR/match-arm-scopes.rs:16:10: 16:15
38 resume; // scope 0 at $DIR/match-arm-scopes.rs:14:1: 19:2
42 falseEdge -> [real: bb9, imaginary: bb4]; // scope 0 at $DIR/match-arm-scopes.rs:16:9: 16:22
46 switchInt((_2.1: bool)) -> [false: bb4, otherwise: bb5]; // scope 0 at $DIR/match-arm-scopes.rs:16:29: 16:34
50 falseEdge -> [real: bb18, imaginary: bb6]; // scope 0 at $DIR/match-arm-scopes.rs:16:25: 16:38
54 switchInt((_2.0: bool)) -> [false: bb7, otherwise: bb6]; // scope 0 at $DIR/match-arm-scopes.rs:17:10: 17:14
58 falseEdge -> [real: bb26, imaginary: bb7]; // scope 0 at $DIR/match-arm-scopes.rs:17:9: 17:21
62 StorageLive(_15); // scope 0 at $DIR/match-arm-scopes.rs:17:32: 17:33
63 _15 = (_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:17:32: 17:33
64 StorageLive(_16); // scope 0 at $DIR/match-arm-scopes.rs:17:35: 17:36
65 _16 = move (_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:17:35: 17:36
66 goto -> bb25; // scope 0 at $DIR/match-arm-scopes.rs:15:5: 18:6
70 _0 = const 1_i32; // scope 1 at $DIR/match-arm-scopes.rs:16:77: 16:78
73 // + val: Value(Scalar(0x00000001))
75 // + span: $DIR/match-arm-scopes.rs:16:77: 16:78
76 // + literal: Const { ty: i32, val: Value(Scalar(0x00000001)) }
77 drop(_7) -> [return: bb24, unwind: bb14]; // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
81 StorageLive(_6); // scope 0 at $DIR/match-arm-scopes.rs:16:17: 16:18
82 _6 = &(_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:16:17: 16:18
83 StorageLive(_8); // scope 0 at $DIR/match-arm-scopes.rs:16:20: 16:21
84 _8 = &(_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:16:20: 16:21
85 _3 = &shallow (_2.0: bool); // scope 0 at $DIR/match-arm-scopes.rs:15:11: 15:16
86 _4 = &shallow (_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:15:11: 15:16
87 StorageLive(_9); // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73
88 StorageLive(_10); // scope 0 at $DIR/match-arm-scopes.rs:16:45: 16:49
89 _10 = _1; // scope 0 at $DIR/match-arm-scopes.rs:16:45: 16:49
90 FakeRead(ForMatchedPlace, _10); // scope 0 at $DIR/match-arm-scopes.rs:16:45: 16:49
91 switchInt(_10) -> [false: bb11, otherwise: bb10]; // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73
95 falseEdge -> [real: bb12, imaginary: bb11]; // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73
99 _9 = (*_6); // scope 0 at $DIR/match-arm-scopes.rs:16:70: 16:71
100 StorageDead(_10); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73
101 switchInt(move _9) -> [false: bb17, otherwise: bb16]; // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73
105 _0 = const 3_i32; // scope 0 at $DIR/match-arm-scopes.rs:16:59: 16:60
108 // + val: Value(Scalar(0x00000003))
110 // + span: $DIR/match-arm-scopes.rs:16:59: 16:60
111 // + literal: Const { ty: i32, val: Value(Scalar(0x00000003)) }
112 StorageDead(_10); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73
113 StorageDead(_9); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
114 StorageDead(_8); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
115 StorageDead(_6); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
116 goto -> bb15; // scope 0 at $DIR/match-arm-scopes.rs:16:52: 16:60
120 return; // scope 0 at $DIR/match-arm-scopes.rs:19:2: 19:2
124 drop(_2) -> bb1; // scope 0 at $DIR/match-arm-scopes.rs:19:1: 19:2
128 drop(_2) -> [return: bb13, unwind: bb1]; // scope 0 at $DIR/match-arm-scopes.rs:19:1: 19:2
132 StorageDead(_9); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
133 FakeRead(ForMatchGuard, _3); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73
134 FakeRead(ForMatchGuard, _4); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73
135 FakeRead(ForGuardBinding, _6); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73
136 FakeRead(ForGuardBinding, _8); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73
137 StorageLive(_5); // scope 0 at $DIR/match-arm-scopes.rs:16:17: 16:18
138 _5 = (_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:16:17: 16:18
139 StorageLive(_7); // scope 0 at $DIR/match-arm-scopes.rs:16:20: 16:21
140 _7 = move (_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:16:20: 16:21
141 goto -> bb8; // scope 0 at $DIR/match-arm-scopes.rs:15:5: 18:6
145 StorageDead(_9); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
146 StorageDead(_8); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
147 StorageDead(_6); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
148 falseEdge -> [real: bb3, imaginary: bb4]; // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73
152 StorageLive(_6); // scope 0 at $DIR/match-arm-scopes.rs:16:26: 16:27
153 _6 = &(_2.0: bool); // scope 0 at $DIR/match-arm-scopes.rs:16:26: 16:27
154 StorageLive(_8); // scope 0 at $DIR/match-arm-scopes.rs:16:36: 16:37
155 _8 = &(_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:16:36: 16:37
156 _3 = &shallow (_2.0: bool); // scope 0 at $DIR/match-arm-scopes.rs:15:11: 15:16
157 _4 = &shallow (_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:15:11: 15:16
158 StorageLive(_12); // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73
159 StorageLive(_13); // scope 0 at $DIR/match-arm-scopes.rs:16:45: 16:49
160 _13 = _1; // scope 0 at $DIR/match-arm-scopes.rs:16:45: 16:49
161 FakeRead(ForMatchedPlace, _13); // scope 0 at $DIR/match-arm-scopes.rs:16:45: 16:49
162 switchInt(_13) -> [false: bb20, otherwise: bb19]; // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73
166 falseEdge -> [real: bb21, imaginary: bb20]; // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73
170 _12 = (*_6); // scope 0 at $DIR/match-arm-scopes.rs:16:70: 16:71
171 StorageDead(_13); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73
172 switchInt(move _12) -> [false: bb23, otherwise: bb22]; // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73
176 _0 = const 3_i32; // scope 0 at $DIR/match-arm-scopes.rs:16:59: 16:60
179 // + val: Value(Scalar(0x00000003))
181 // + span: $DIR/match-arm-scopes.rs:16:59: 16:60
182 // + literal: Const { ty: i32, val: Value(Scalar(0x00000003)) }
183 StorageDead(_13); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73
184 StorageDead(_12); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
185 StorageDead(_8); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
186 StorageDead(_6); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
187 goto -> bb15; // scope 0 at $DIR/match-arm-scopes.rs:16:52: 16:60
191 StorageDead(_12); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
192 FakeRead(ForMatchGuard, _3); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73
193 FakeRead(ForMatchGuard, _4); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73
194 FakeRead(ForGuardBinding, _6); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73
195 FakeRead(ForGuardBinding, _8); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73
196 StorageLive(_5); // scope 0 at $DIR/match-arm-scopes.rs:16:26: 16:27
197 _5 = (_2.0: bool); // scope 0 at $DIR/match-arm-scopes.rs:16:26: 16:27
198 StorageLive(_7); // scope 0 at $DIR/match-arm-scopes.rs:16:36: 16:37
199 _7 = move (_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:16:36: 16:37
200 goto -> bb8; // scope 0 at $DIR/match-arm-scopes.rs:15:5: 18:6
204 StorageDead(_12); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
205 StorageDead(_8); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
206 StorageDead(_6); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
207 falseEdge -> [real: bb5, imaginary: bb6]; // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73
211 StorageDead(_7); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
212 StorageDead(_5); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
213 StorageDead(_8); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
214 StorageDead(_6); // scope 0 at $DIR/match-arm-scopes.rs:16:78: 16:79
215 goto -> bb28; // scope 0 at $DIR/match-arm-scopes.rs:15:5: 18:6
219 _0 = const 2_i32; // scope 2 at $DIR/match-arm-scopes.rs:17:41: 17:42
222 // + val: Value(Scalar(0x00000002))
224 // + span: $DIR/match-arm-scopes.rs:17:41: 17:42
225 // + literal: Const { ty: i32, val: Value(Scalar(0x00000002)) }
226 drop(_16) -> [return: bb27, unwind: bb14]; // scope 0 at $DIR/match-arm-scopes.rs:17:42: 17:43
230 StorageLive(_15); // scope 0 at $DIR/match-arm-scopes.rs:17:16: 17:17
231 _15 = (_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:17:16: 17:17
232 StorageLive(_16); // scope 0 at $DIR/match-arm-scopes.rs:17:19: 17:20
233 _16 = move (_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:17:19: 17:20
234 goto -> bb25; // scope 0 at $DIR/match-arm-scopes.rs:15:5: 18:6
238 StorageDead(_16); // scope 0 at $DIR/match-arm-scopes.rs:17:42: 17:43
239 StorageDead(_15); // scope 0 at $DIR/match-arm-scopes.rs:17:42: 17:43
240 goto -> bb28; // scope 0 at $DIR/match-arm-scopes.rs:15:5: 18:6
244 drop(_2) -> [return: bb13, unwind: bb1]; // scope 0 at $DIR/match-arm-scopes.rs:19:1: 19:2