@@ -18,12 +18,19 @@ fn guard2(_:i32) -> bool {
18
18
true
19
19
}
20
20
21
- fn full_tested_match ( )
22
- {
21
+ fn full_tested_match ( ) {
23
22
let _ = match Some ( 42 ) {
24
23
Some ( x) if guard ( ) => 1 + x,
25
24
Some ( y) => 2 + y,
26
- None => 3
25
+ None => 3 ,
26
+ } ;
27
+ }
28
+
29
+ fn full_tested_match2 ( ) {
30
+ let _ = match Some ( 42 ) {
31
+ Some ( x) if guard ( ) => 1 + x,
32
+ None => 3 ,
33
+ Some ( y) => 2 + y,
27
34
} ;
28
35
}
29
36
@@ -93,11 +100,66 @@ fn main() {
93
100
// ...
94
101
// return;
95
102
// }
96
- //
97
- //
98
103
// END rustc.node17.NLL.before.mir
99
104
//
100
105
// START rustc.node40.NLL.before.mir
106
+ // bb0: {
107
+ // ...
108
+ // _2 = std::option::Option<i32>::Some(const 42i32,);
109
+ // _5 = discriminant(_2);
110
+ // switchInt(_5) -> [0isize: bb4, otherwise: bb3];
111
+ // }
112
+ // bb1: { // arm1
113
+ // StorageLive(_7);
114
+ // _7 = _3;
115
+ // _1 = Add(const 1i32, _7);
116
+ // ...
117
+ // goto -> bb11;
118
+ // }
119
+ // bb2: { // binding3(empty) and arm3
120
+ // _1 = const 3i32;
121
+ // goto -> bb11;
122
+ // }
123
+ // bb3: {
124
+ // falseEdges -> [real: bb7, imaginary: bb4]; //pre_binding1
125
+ // }
126
+ // bb4: {
127
+ // falseEdges -> [real: bb2, imaginary: bb5]; //pre_binding2
128
+ // }
129
+ // bb5: {
130
+ // falseEdges -> [real: bb10, imaginary: bb6]; //pre_binding3
131
+ // }
132
+ // bb6: {
133
+ // unreachable;
134
+ // }
135
+ // bb7: { // binding1 and guard
136
+ // StorageLive(_3);
137
+ // _3 = ((_2 as Some).0: i32);
138
+ // StorageLive(_6);
139
+ // _6 = const guard() -> bb8;
140
+ // }
141
+ // bb8: { // end of guard
142
+ // switchInt(_6) -> [0u8: bb9, otherwise: bb1];
143
+ // }
144
+ // bb9: { // to pre_binding2
145
+ // falseEdges -> [real: bb5, imaginary: bb4];
146
+ // }
147
+ // bb10: { // binding2 and arm2
148
+ // StorageLive(_4);
149
+ // _4 = ((_2 as Some).0: i32);
150
+ // StorageLive(_8);
151
+ // _8 = _4;
152
+ // _1 = Add(const 2i32, _8);
153
+ // StorageDead(_8);
154
+ // goto -> bb11;
155
+ // }
156
+ // bb11: {
157
+ // ...
158
+ // return;
159
+ // }
160
+ // END rustc.node40.NLL.before.mir
161
+ //
162
+ // START rustc.node63.NLL.before.mir
101
163
// bb0: {
102
164
// ...
103
165
// _2 = std::option::Option<i32>::Some(const 1i32,);
@@ -171,4 +233,4 @@ fn main() {
171
233
// ...
172
234
// return;
173
235
// }
174
- // END rustc.node40 .NLL.before.mir
236
+ // END rustc.node63 .NLL.before.mir
0 commit comments