@@ -18,12 +18,19 @@ fn guard2(_:i32) -> bool {
1818 true
1919}
2020
21- fn full_tested_match ( )
22- {
21+ fn full_tested_match ( ) {
2322 let _ = match Some ( 42 ) {
2423 Some ( x) if guard ( ) => 1 + x,
2524 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,
2734 } ;
2835}
2936
@@ -93,11 +100,66 @@ fn main() {
93100// ...
94101// return;
95102// }
96- //
97- //
98103// END rustc.node17.NLL.before.mir
99104//
100105// 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
101163// bb0: {
102164// ...
103165// _2 = std::option::Option<i32>::Some(const 1i32,);
@@ -171,4 +233,4 @@ fn main() {
171233// ...
172234// return;
173235// }
174- // END rustc.node40 .NLL.before.mir
236+ // END rustc.node63 .NLL.before.mir
0 commit comments