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

+