summaryrefslogtreecommitdiffstats
path: root/src/test/mir-opt/inline/inline_generator.main.Inline.diff
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/mir-opt/inline/inline_generator.main.Inline.diff')
-rw-r--r--src/test/mir-opt/inline/inline_generator.main.Inline.diff152
1 files changed, 70 insertions, 82 deletions
diff --git a/src/test/mir-opt/inline/inline_generator.main.Inline.diff b/src/test/mir-opt/inline/inline_generator.main.Inline.diff
index 3fd8aad72..91bff3d32 100644
--- a/src/test/mir-opt/inline/inline_generator.main.Inline.diff
+++ b/src/test/mir-opt/inline/inline_generator.main.Inline.diff
@@ -2,59 +2,56 @@
+ // MIR for `main` after Inline
fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-generator.rs:+0:11: +0:11
- let _1: std::ops::GeneratorState<i32, bool>; // in scope 0 at $DIR/inline-generator.rs:+1:9: +1:11
- 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
- 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
- let mut _4: [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 0 at $DIR/inline-generator.rs:+1:28: +1:31
-+ let mut _7: bool; // in scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
+ let mut _0: (); // return place in scope 0 at $DIR/inline_generator.rs:+0:11: +0:11
+ let _1: std::ops::GeneratorState<i32, bool>; // in scope 0 at $DIR/inline_generator.rs:+1:9: +1:11
+ 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
+ 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
+ let mut _4: [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 0 at $DIR/inline_generator.rs:+1:28: +1:31
++ let mut _7: bool; // in scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
scope 1 {
- debug _r => _1; // in scope 1 at $DIR/inline-generator.rs:+1:9: +1:11
+ debug _r => _1; // in scope 1 at $DIR/inline_generator.rs:+1:9: +1:11
}
-+ scope 2 (inlined g) { // at $DIR/inline-generator.rs:9:28: 9:31
++ scope 2 (inlined g) { // at $DIR/inline_generator.rs:9:28: 9:31
+ }
-+ scope 3 (inlined Pin::<&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]>::new) { // at $DIR/inline-generator.rs:9:14: 9:32
++ scope 3 (inlined Pin::<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>::new) { // at $DIR/inline_generator.rs:9:14: 9:32
+ debug pointer => _3; // in scope 3 at $SRC_DIR/core/src/pin.rs:LL:COL
-+ 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
++ 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
+ scope 4 {
-+ 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
++ 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
+ debug pointer => _5; // in scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
-+ 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
++ 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
+ }
+ }
+ }
-+ scope 6 (inlined g::{closure#0}) { // at $DIR/inline-generator.rs:9:14: 9:46
-+ debug a => _11; // in scope 6 at $DIR/inline-generator.rs:15:6: 15:7
-+ let mut _8: i32; // in scope 6 at $DIR/inline-generator.rs:15:17: 15:39
-+ let mut _9: bool; // in scope 6 at $DIR/inline-generator.rs:15:20: 15:21
-+ let mut _10: bool; // in scope 6 at $DIR/inline-generator.rs:15:9: 15:9
-+ let _11: bool; // in scope 6 at $DIR/inline-generator.rs:15:6: 15:7
-+ let mut _12: u32; // in scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ let mut _13: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ let mut _14: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ let mut _15: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline-generator.rs:15:5: 15:41
++ scope 6 (inlined g::{closure#0}) { // at $DIR/inline_generator.rs:9:14: 9:46
++ debug a => _7; // in scope 6 at $DIR/inline_generator.rs:15:6: 15:7
++ let mut _8: i32; // in scope 6 at $DIR/inline_generator.rs:15:17: 15:39
++ let mut _9: u32; // in scope 6 at $DIR/inline_generator.rs:15:5: 15:41
++ 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
++ 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
++ 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
+ }
bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-generator.rs:+1:9: +1:11
- StorageLive(_2); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:32
- StorageLive(_3); // scope 0 at $DIR/inline-generator.rs:+1:23: +1:31
- StorageLive(_4); // scope 0 at $DIR/inline-generator.rs:+1:28: +1:31
-- _4 = g() -> bb1; // scope 0 at $DIR/inline-generator.rs:+1:28: +1:31
+ StorageLive(_1); // scope 0 at $DIR/inline_generator.rs:+1:9: +1:11
+ StorageLive(_2); // scope 0 at $DIR/inline_generator.rs:+1:14: +1:32
+ StorageLive(_3); // scope 0 at $DIR/inline_generator.rs:+1:23: +1:31
+ StorageLive(_4); // scope 0 at $DIR/inline_generator.rs:+1:28: +1:31
+- _4 = g() -> bb1; // scope 0 at $DIR/inline_generator.rs:+1:28: +1:31
- // mir::Constant
-- // + span: $DIR/inline-generator.rs:9:28: 9:29
+- // + span: $DIR/inline_generator.rs:9:28: 9:29
- // + literal: Const { ty: fn() -> impl Generator<bool> {g}, val: Value(<ZST>) }
- }
-
- bb1: {
-+ Deinit(_4); // scope 2 at $DIR/inline-generator.rs:15:5: 15:41
-+ discriminant(_4) = 0; // scope 2 at $DIR/inline-generator.rs:15:5: 15:41
- _3 = &mut _4; // scope 0 at $DIR/inline-generator.rs:+1:23: +1:31
-- _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
++ Deinit(_4); // scope 2 at $DIR/inline_generator.rs:15:5: 15:41
++ discriminant(_4) = 0; // scope 2 at $DIR/inline_generator.rs:15:5: 15:41
+ _3 = &mut _4; // scope 0 at $DIR/inline_generator.rs:+1:23: +1:31
+- _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
- // mir::Constant
-- // + span: $DIR/inline-generator.rs:9:14: 9:22
+- // + span: $DIR/inline_generator.rs:9:14: 9:22
- // + user_ty: UserType(0)
-- // + 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>) }
+- // + 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>) }
- }
-
- bb2: {
@@ -63,86 +60,77 @@
+ StorageLive(_6); // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ _6 = move _5; // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ Deinit(_2); // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
-+ (_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
++ (_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
+ StorageDead(_6); // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ StorageDead(_5); // scope 4 at $SRC_DIR/core/src/pin.rs:LL:COL
- StorageDead(_3); // scope 0 at $DIR/inline-generator.rs:+1:31: +1:32
-- _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
+ StorageDead(_3); // scope 0 at $DIR/inline_generator.rs:+1:31: +1:32
+- _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
- // mir::Constant
-- // + span: $DIR/inline-generator.rs:9:33: 9:39
-- // + 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>) }
-+ StorageLive(_7); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
-+ _7 = const false; // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
-+ StorageLive(_10); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
-+ StorageLive(_11); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
-+ _13 = 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
-+ _12 = discriminant((*_13)); // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ switchInt(move _12) -> [0_u32: bb3, 1_u32: bb8, 3_u32: bb7, otherwise: bb9]; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
+- // + span: $DIR/inline_generator.rs:9:33: 9:39
+- // + 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>) }
++ StorageLive(_7); // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
++ _7 = const false; // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
++ _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
++ _9 = discriminant((*_10)); // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
++ switchInt(move _9) -> [0_u32: bb3, 1_u32: bb8, 3_u32: bb7, otherwise: bb9]; // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
}
- bb3: {
+ bb1: {
-+ StorageDead(_11); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
-+ StorageDead(_10); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
-+ StorageDead(_7); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
- StorageDead(_2); // scope 0 at $DIR/inline-generator.rs:+1:45: +1:46
- StorageDead(_4); // scope 0 at $DIR/inline-generator.rs:+1:46: +1:47
- _0 = const (); // scope 0 at $DIR/inline-generator.rs:+0:11: +2:2
- StorageDead(_1); // scope 0 at $DIR/inline-generator.rs:+2:1: +2:2
- return; // scope 0 at $DIR/inline-generator.rs:+2:2: +2:2
++ StorageDead(_7); // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
+ StorageDead(_2); // scope 0 at $DIR/inline_generator.rs:+1:45: +1:46
+ StorageDead(_4); // scope 0 at $DIR/inline_generator.rs:+1:46: +1:47
+ _0 = const (); // scope 0 at $DIR/inline_generator.rs:+0:11: +2:2
+ StorageDead(_1); // scope 0 at $DIR/inline_generator.rs:+2:1: +2:2
+ return; // scope 0 at $DIR/inline_generator.rs:+2:2: +2:2
}
- bb4 (cleanup): {
+ bb2 (cleanup): {
- resume; // scope 0 at $DIR/inline-generator.rs:+0:1: +2:2
+ resume; // scope 0 at $DIR/inline_generator.rs:+0:1: +2:2
+ }
+
+ bb3: {
-+ _11 = move _7; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ StorageLive(_8); // scope 6 at $DIR/inline-generator.rs:15:17: 15:39
-+ StorageLive(_9); // scope 6 at $DIR/inline-generator.rs:15:20: 15:21
-+ _9 = _11; // scope 6 at $DIR/inline-generator.rs:15:20: 15:21
-+ switchInt(move _9) -> [false: bb5, otherwise: bb4]; // scope 6 at $DIR/inline-generator.rs:15:20: 15:21
++ StorageLive(_8); // scope 6 at $DIR/inline_generator.rs:15:17: 15:39
++ switchInt(move _7) -> [false: bb5, otherwise: bb4]; // scope 6 at $DIR/inline_generator.rs:15:20: 15:21
+ }
+
+ bb4: {
-+ _8 = const 7_i32; // scope 6 at $DIR/inline-generator.rs:15:24: 15:25
-+ goto -> bb6; // scope 6 at $DIR/inline-generator.rs:15:17: 15:39
++ _8 = const 7_i32; // scope 6 at $DIR/inline_generator.rs:15:24: 15:25
++ goto -> bb6; // scope 6 at $DIR/inline_generator.rs:15:17: 15:39
+ }
+
+ bb5: {
-+ _8 = const 13_i32; // scope 6 at $DIR/inline-generator.rs:15:35: 15:37
-+ goto -> bb6; // scope 6 at $DIR/inline-generator.rs:15:17: 15:39
++ _8 = const 13_i32; // scope 6 at $DIR/inline_generator.rs:15:35: 15:37
++ goto -> bb6; // scope 6 at $DIR/inline_generator.rs:15:17: 15:39
+ }
+
+ bb6: {
-+ StorageDead(_9); // scope 6 at $DIR/inline-generator.rs:15:38: 15:39
-+ Deinit(_1); // scope 6 at $DIR/inline-generator.rs:15:11: 15:39
-+ ((_1 as Yielded).0: i32) = move _8; // scope 6 at $DIR/inline-generator.rs:15:11: 15:39
-+ discriminant(_1) = 0; // scope 6 at $DIR/inline-generator.rs:15:11: 15:39
-+ _14 = 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
-+ discriminant((*_14)) = 3; // scope 6 at $DIR/inline-generator.rs:15:11: 15:39
-+ goto -> bb1; // scope 0 at $DIR/inline-generator.rs:15:11: 15:39
++ Deinit(_1); // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
++ ((_1 as Yielded).0: i32) = move _8; // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
++ discriminant(_1) = 0; // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
++ _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
++ discriminant((*_11)) = 3; // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
++ goto -> bb1; // scope 0 at $DIR/inline_generator.rs:15:11: 15:39
+ }
+
+ bb7: {
-+ StorageLive(_8); // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ _10 = move _7; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
-+ StorageDead(_8); // scope 6 at $DIR/inline-generator.rs:15:38: 15:39
-+ Deinit(_1); // scope 6 at $DIR/inline-generator.rs:15:41: 15:41
-+ ((_1 as Complete).0: bool) = move _10; // scope 6 at $DIR/inline-generator.rs:15:41: 15:41
-+ discriminant(_1) = 1; // scope 6 at $DIR/inline-generator.rs:15:41: 15:41
-+ _15 = 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
-+ discriminant((*_15)) = 1; // scope 6 at $DIR/inline-generator.rs:15:41: 15:41
-+ goto -> bb1; // scope 0 at $DIR/inline-generator.rs:15:41: 15:41
++ StorageLive(_8); // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
++ StorageDead(_8); // scope 6 at $DIR/inline_generator.rs:15:38: 15:39
++ Deinit(_1); // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
++ ((_1 as Complete).0: bool) = move _7; // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
++ discriminant(_1) = 1; // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
++ _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
++ discriminant((*_12)) = 1; // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
++ goto -> bb1; // scope 0 at $DIR/inline_generator.rs:15:41: 15:41
+ }
+
+ bb8: {
-+ assert(const false, "generator resumed after completion") -> [success: bb8, unwind: bb2]; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
++ assert(const false, "generator resumed after completion") -> [success: bb8, unwind: bb2]; // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
+ }
+
+ bb9: {
-+ unreachable; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
++ unreachable; // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
}
}