Skip to content

Commit 89dac4c

Browse files
committed
add gate test and bless mir
1 parent 4b7dc2c commit 89dac4c

File tree

4 files changed

+110
-95
lines changed

4 files changed

+110
-95
lines changed

Diff for: tests/mir-opt/inline/inline_generator.main.Inline.diff

+55-53
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
let mut _2: std::pin::Pin<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>; // in scope 0 at $DIR/inline_generator.rs:+1:14: +1:32
88
let mut _3: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 0 at $DIR/inline_generator.rs:+1:23: +1:31
99
let mut _4: [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 0 at $DIR/inline_generator.rs:+1:28: +1:31
10-
+ let mut _6: bool; // in scope 0 at $DIR/inline_generator.rs:+1:33: +1:46
10+
+ let mut _7: bool; // in scope 0 at $DIR/inline_generator.rs:+1:33: +1:46
1111
scope 1 {
1212
debug _r => _1; // in scope 1 at $DIR/inline_generator.rs:+1:9: +1:11
1313
}
@@ -17,15 +17,19 @@
1717
+ debug pointer => _3; // in scope 3 at $SRC_DIR/core/src/pin.rs:LL:COL
1818
+ let mut _5: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 3 at $SRC_DIR/core/src/pin.rs:LL:COL
1919
+ scope 4 {
20+
+ scope 5 (inlined Pin::<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>::new_unchecked) { // at $SRC_DIR/core/src/pin.rs:LL:COL
21+
+ debug pointer => _5; // in scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
22+
+ let mut _6: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
23+
+ }
2024
+ }
2125
+ }
22-
+ scope 5 (inlined g::{closure#0}) { // at $DIR/inline_generator.rs:9:33: 9:46
23-
+ debug a => _6; // in scope 5 at $DIR/inline_generator.rs:15:6: 15:7
24-
+ let mut _7: i32; // in scope 5 at $DIR/inline_generator.rs:15:17: 15:39
25-
+ let mut _8: u32; // in scope 5 at $DIR/inline_generator.rs:15:5: 15:41
26-
+ let mut _9: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 5 at $DIR/inline_generator.rs:15:5: 15:41
27-
+ let mut _10: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 5 at $DIR/inline_generator.rs:15:5: 15:41
28-
+ let mut _11: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 5 at $DIR/inline_generator.rs:15:5: 15:41
26+
+ scope 6 (inlined g::{closure#0}) { // at $DIR/inline_generator.rs:9:33: 9:46
27+
+ debug a => _7; // in scope 6 at $DIR/inline_generator.rs:15:6: 15:7
28+
+ let mut _8: i32; // in scope 6 at $DIR/inline_generator.rs:15:17: 15:39
29+
+ let mut _9: u32; // in scope 6 at $DIR/inline_generator.rs:15:5: 15:41
30+
+ let mut _10: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline_generator.rs:15:5: 15:41
31+
+ let mut _11: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline_generator.rs:15:5: 15:41
32+
+ let mut _12: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline_generator.rs:15:5: 15:41
2933
+ }
3034

3135
bb0: {
@@ -44,28 +48,36 @@
4448
+ discriminant(_4) = 0; // scope 2 at $DIR/inline_generator.rs:15:5: 15:41
4549
_3 = &mut _4; // scope 0 at $DIR/inline_generator.rs:+1:23: +1:31
4650
- _2 = Pin::<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>::new(move _3) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/inline_generator.rs:+1:14: +1:32
47-
+ StorageLive(_5); // scope 4 at $SRC_DIR/core/src/pin.rs:LL:COL
48-
+ _5 = move _3; // scope 4 at $SRC_DIR/core/src/pin.rs:LL:COL
49-
+ _2 = Pin::<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>::new_unchecked(move _5) -> [return: bb3, unwind: bb2]; // scope 4 at $SRC_DIR/core/src/pin.rs:LL:COL
50-
// mir::Constant
51+
- // mir::Constant
5152
- // + span: $DIR/inline_generator.rs:9:14: 9:22
52-
+ // + span: $SRC_DIR/core/src/pin.rs:LL:COL
53-
// + user_ty: UserType(0)
53+
- // + user_ty: UserType(0)
5454
- // + literal: Const { ty: fn(&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]) -> Pin<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]> {Pin::<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>::new}, val: Value(<ZST>) }
55-
+ // + literal: Const { ty: unsafe fn(&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]) -> Pin<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]> {Pin::<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>::new_unchecked}, val: Value(<ZST>) }
56-
}
57-
55+
- }
56+
-
5857
- bb2: {
59-
- StorageDead(_3); // scope 0 at $DIR/inline_generator.rs:+1:31: +1:32
58+
+ StorageLive(_5); // scope 4 at $SRC_DIR/core/src/pin.rs:LL:COL
59+
+ _5 = move _3; // scope 4 at $SRC_DIR/core/src/pin.rs:LL:COL
60+
+ StorageLive(_6); // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
61+
+ _6 = move _5; // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
62+
+ Deinit(_2); // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
63+
+ (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]) = move _6; // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
64+
+ StorageDead(_6); // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
65+
+ StorageDead(_5); // scope 4 at $SRC_DIR/core/src/pin.rs:LL:COL
66+
StorageDead(_3); // scope 0 at $DIR/inline_generator.rs:+1:31: +1:32
6067
- _1 = <[generator@$DIR/inline_generator.rs:15:5: 15:8] as Generator<bool>>::resume(move _2, const false) -> [return: bb3, unwind: bb4]; // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
6168
- // mir::Constant
6269
- // + span: $DIR/inline_generator.rs:9:33: 9:39
6370
- // + literal: Const { ty: for<'a> fn(Pin<&'a mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>, bool) -> GeneratorState<<[generator@$DIR/inline_generator.rs:15:5: 15:8] as Generator<bool>>::Yield, <[generator@$DIR/inline_generator.rs:15:5: 15:8] as Generator<bool>>::Return> {<[generator@$DIR/inline_generator.rs:15:5: 15:8] as Generator<bool>>::resume}, val: Value(<ZST>) }
64-
- }
65-
-
71+
+ StorageLive(_7); // scope 0 at $DIR/inline_generator.rs:+1:33: +1:46
72+
+ _7 = const false; // scope 0 at $DIR/inline_generator.rs:+1:33: +1:46
73+
+ _10 = deref_copy (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
74+
+ _9 = discriminant((*_10)); // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
75+
+ switchInt(move _9) -> [0: bb3, 1: bb8, 3: bb7, otherwise: bb9]; // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
76+
}
77+
6678
- bb3: {
6779
+ bb1: {
68-
+ StorageDead(_6); // scope 0 at $DIR/inline_generator.rs:+1:33: +1:46
80+
+ StorageDead(_7); // scope 0 at $DIR/inline_generator.rs:+1:33: +1:46
6981
StorageDead(_2); // scope 0 at $DIR/inline_generator.rs:+1:45: +1:46
7082
StorageDead(_4); // scope 0 at $DIR/inline_generator.rs:+1:46: +1:47
7183
_0 = const (); // scope 0 at $DIR/inline_generator.rs:+0:11: +2:2
@@ -79,56 +91,46 @@
7991
+ }
8092
+
8193
+ bb3: {
82-
+ StorageDead(_5); // scope 4 at $SRC_DIR/core/src/pin.rs:LL:COL
83-
+ StorageDead(_3); // scope 0 at $DIR/inline_generator.rs:+1:31: +1:32
84-
+ StorageLive(_6); // scope 0 at $DIR/inline_generator.rs:+1:33: +1:46
85-
+ _6 = const false; // scope 0 at $DIR/inline_generator.rs:+1:33: +1:46
86-
+ _9 = deref_copy (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]); // scope 5 at $DIR/inline_generator.rs:15:5: 15:41
87-
+ _8 = discriminant((*_9)); // scope 5 at $DIR/inline_generator.rs:15:5: 15:41
88-
+ switchInt(move _8) -> [0: bb4, 1: bb9, 3: bb8, otherwise: bb10]; // scope 5 at $DIR/inline_generator.rs:15:5: 15:41
94+
+ StorageLive(_8); // scope 6 at $DIR/inline_generator.rs:15:17: 15:39
95+
+ switchInt(move _7) -> [0: bb5, otherwise: bb4]; // scope 6 at $DIR/inline_generator.rs:15:20: 15:21
8996
+ }
9097
+
9198
+ bb4: {
92-
+ StorageLive(_7); // scope 5 at $DIR/inline_generator.rs:15:17: 15:39
93-
+ switchInt(move _6) -> [0: bb6, otherwise: bb5]; // scope 5 at $DIR/inline_generator.rs:15:20: 15:21
99+
+ _8 = const 7_i32; // scope 6 at $DIR/inline_generator.rs:15:24: 15:25
100+
+ goto -> bb6; // scope 6 at $DIR/inline_generator.rs:15:17: 15:39
94101
+ }
95102
+
96103
+ bb5: {
97-
+ _7 = const 7_i32; // scope 5 at $DIR/inline_generator.rs:15:24: 15:25
98-
+ goto -> bb7; // scope 5 at $DIR/inline_generator.rs:15:17: 15:39
104+
+ _8 = const 13_i32; // scope 6 at $DIR/inline_generator.rs:15:35: 15:37
105+
+ goto -> bb6; // scope 6 at $DIR/inline_generator.rs:15:17: 15:39
99106
+ }
100107
+
101108
+ bb6: {
102-
+ _7 = const 13_i32; // scope 5 at $DIR/inline_generator.rs:15:35: 15:37
103-
+ goto -> bb7; // scope 5 at $DIR/inline_generator.rs:15:17: 15:39
109+
+ Deinit(_1); // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
110+
+ ((_1 as Yielded).0: i32) = move _8; // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
111+
+ discriminant(_1) = 0; // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
112+
+ _11 = deref_copy (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
113+
+ discriminant((*_11)) = 3; // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
114+
+ goto -> bb1; // scope 0 at $DIR/inline_generator.rs:15:11: 15:39
104115
+ }
105116
+
106117
+ bb7: {
107-
+ Deinit(_1); // scope 5 at $DIR/inline_generator.rs:15:11: 15:39
108-
+ ((_1 as Yielded).0: i32) = move _7; // scope 5 at $DIR/inline_generator.rs:15:11: 15:39
109-
+ discriminant(_1) = 0; // scope 5 at $DIR/inline_generator.rs:15:11: 15:39
110-
+ _10 = deref_copy (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]); // scope 5 at $DIR/inline_generator.rs:15:11: 15:39
111-
+ discriminant((*_10)) = 3; // scope 5 at $DIR/inline_generator.rs:15:11: 15:39
112-
+ goto -> bb1; // scope 0 at $DIR/inline_generator.rs:15:11: 15:39
118+
+ StorageLive(_8); // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
119+
+ StorageDead(_8); // scope 6 at $DIR/inline_generator.rs:15:38: 15:39
120+
+ Deinit(_1); // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
121+
+ ((_1 as Complete).0: bool) = move _7; // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
122+
+ discriminant(_1) = 1; // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
123+
+ _12 = deref_copy (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
124+
+ discriminant((*_12)) = 1; // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
125+
+ goto -> bb1; // scope 0 at $DIR/inline_generator.rs:15:41: 15:41
113126
+ }
114127
+
115128
+ bb8: {
116-
+ StorageLive(_7); // scope 5 at $DIR/inline_generator.rs:15:5: 15:41
117-
+ StorageDead(_7); // scope 5 at $DIR/inline_generator.rs:15:38: 15:39
118-
+ Deinit(_1); // scope 5 at $DIR/inline_generator.rs:15:41: 15:41
119-
+ ((_1 as Complete).0: bool) = move _6; // scope 5 at $DIR/inline_generator.rs:15:41: 15:41
120-
+ discriminant(_1) = 1; // scope 5 at $DIR/inline_generator.rs:15:41: 15:41
121-
+ _11 = deref_copy (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]); // scope 5 at $DIR/inline_generator.rs:15:41: 15:41
122-
+ discriminant((*_11)) = 1; // scope 5 at $DIR/inline_generator.rs:15:41: 15:41
123-
+ goto -> bb1; // scope 0 at $DIR/inline_generator.rs:15:41: 15:41
129+
+ assert(const false, "generator resumed after completion") -> [success: bb8, unwind: bb2]; // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
124130
+ }
125131
+
126132
+ bb9: {
127-
+ assert(const false, "generator resumed after completion") -> [success: bb9, unwind: bb2]; // scope 5 at $DIR/inline_generator.rs:15:5: 15:41
128-
+ }
129-
+
130-
+ bb10: {
131-
+ unreachable; // scope 5 at $DIR/inline_generator.rs:15:5: 15:41
133+
+ unreachable; // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
132134
}
133135
}
134136

0 commit comments

Comments
 (0)