Rollup merge of #116415 - ouz-a:move_subtyper, r=oli-obk · rust-lang/rust@08cc742
@@ -7,12 +7,11 @@
77 let mut _2: std::pin::Pin<&mut {generator@$DIR/inline_generator.rs:16:5: 16:8}>;
88 let mut _3: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8};
99 let mut _4: {generator@$DIR/inline_generator.rs:16:5: 16:8};
10-+ let mut _6: bool;
10++ let mut _5: bool;
1111 scope 1 {
1212 debug _r => _1;
1313 }
1414+ scope 2 (inlined g) {
15-+ let mut _5: {generator@$DIR/inline_generator.rs:16:5: 16:8};
1615+ }
1716+ scope 3 (inlined Pin::<&mut {generator@$DIR/inline_generator.rs:16:5: 16:8}>::new) {
1817+ debug pointer => _3;
@@ -23,10 +22,10 @@
2322+ }
2423+ }
2524+ scope 6 (inlined g::{closure#0}) {
26-+ debug a => _6;
27-+ let mut _7: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8};
28-+ let mut _8: u32;
29-+ let mut _9: i32;
25++ debug a => _5;
26++ let mut _6: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8};
27++ let mut _7: u32;
28++ let mut _8: i32;
3029+ }
31303231 bb0: {
@@ -38,10 +37,7 @@
3837- }
3938-
4039- bb1: {
41-+ StorageLive(_5);
42-+ _5 = {generator@$DIR/inline_generator.rs:16:5: 16:8 (#0)};
43-+ _4 = move (_5 as subtype {generator@$DIR/inline_generator.rs:16:5: 16:8});
44-+ StorageDead(_5);
40++ _4 = {generator@$DIR/inline_generator.rs:16:5: 16:8 (#0)};
4541 _3 = &mut _4;
4642- _2 = Pin::<&mut {generator@$DIR/inline_generator.rs:16:5: 16:8}>::new(move _3) -> [return: bb2, unwind: bb5];
4743- }
@@ -50,20 +46,20 @@
5046+ _2 = Pin::<&mut {generator@$DIR/inline_generator.rs:16:5: 16:8}> { pointer: move _3 };
5147 StorageDead(_3);
5248- _1 = <{generator@$DIR/inline_generator.rs:16:5: 16:8} as Generator<bool>>::resume(move _2, const false) -> [return: bb3, unwind: bb5];
49++ StorageLive(_5);
50++ _5 = const false;
5351+ StorageLive(_6);
54-+ _6 = const false;
5552+ StorageLive(_7);
56-+ StorageLive(_8);
57-+ _7 = (_2.0: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8});
58-+ _8 = discriminant((*_7));
59-+ switchInt(move _8) -> [0: bb5, 1: bb9, 3: bb10, otherwise: bb11];
53++ _6 = (_2.0: &mut {generator@$DIR/inline_generator.rs:16:5: 16:8});
54++ _7 = discriminant((*_6));
55++ switchInt(move _7) -> [0: bb5, 1: bb9, 3: bb10, otherwise: bb11];
6056 }
61576258- bb3: {
6359+ bb1: {
64-+ StorageDead(_8);
6560+ StorageDead(_7);
6661+ StorageDead(_6);
62++ StorageDead(_5);
6763 StorageDead(_2);
6864- drop(_4) -> [return: bb4, unwind: bb6];
6965+ drop(_4) -> [return: bb2, unwind: bb4];
@@ -89,23 +85,23 @@
8985+ }
9086+
9187+ bb5: {
92-+ StorageLive(_9);
93-+ switchInt(_6) -> [0: bb6, otherwise: bb7];
88++ StorageLive(_8);
89++ switchInt(_5) -> [0: bb6, otherwise: bb7];
9490+ }
9591+
9692+ bb6: {
97-+ _9 = const 13_i32;
93++ _8 = const 13_i32;
9894+ goto -> bb8;
9995+ }
10096+
10197+ bb7: {
102-+ _9 = const 7_i32;
98++ _8 = const 7_i32;
10399+ goto -> bb8;
104100+ }
105101+
106102+ bb8: {
107-+ _1 = GeneratorState::<i32, bool>::Yielded(move _9);
108-+ discriminant((*_7)) = 3;
103++ _1 = GeneratorState::<i32, bool>::Yielded(move _8);
104++ discriminant((*_6)) = 3;
109105+ goto -> bb1;
110106+ }
111107+
@@ -114,10 +110,10 @@
114110+ }
115111+
116112+ bb10: {
117-+ StorageLive(_9);
118-+ StorageDead(_9);
119-+ _1 = GeneratorState::<i32, bool>::Complete(_6);
120-+ discriminant((*_7)) = 1;
113++ StorageLive(_8);
114++ StorageDead(_8);
115++ _1 = GeneratorState::<i32, bool>::Complete(_5);
116++ discriminant((*_6)) = 1;
121117+ goto -> bb1;
122118+ }
123119+