]> git.lizzy.rs Git - rust.git/blob - tests/mir-opt/generator_tiny.main-{closure#0}.generator_resume.0.mir
Rollup merge of #107769 - compiler-errors:pointer-like, r=eholk
[rust.git] / tests / mir-opt / generator_tiny.main-{closure#0}.generator_resume.0.mir
1 // MIR for `main::{closure#0}` 0 generator_resume
2 /* generator_layout = GeneratorLayout {
3     field_tys: {
4         _0: GeneratorSavedTy {
5             ty: HasDrop,
6             source_info: SourceInfo {
7                 span: $DIR/generator_tiny.rs:20:13: 20:15 (#0),
8                 scope: scope[0],
9             },
10             ignore_for_traits: false,
11         },
12     },
13     variant_fields: {
14         Unresumed(0): [],
15         Returned (1): [],
16         Panicked (2): [],
17         Suspend0 (3): [_0],
18     },
19     storage_conflicts: BitMatrix(1x1) {
20         (_0, _0),
21     },
22 } */
23
24 fn main::{closure#0}(_1: Pin<&mut [generator@$DIR/generator_tiny.rs:19:16: 19:24]>, _2: u8) -> GeneratorState<(), ()> {
25     debug _x => _10;                     // in scope 0 at $DIR/generator_tiny.rs:+0:17: +0:19
26     let mut _0: std::ops::GeneratorState<(), ()>; // return place in scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
27     let _3: HasDrop;                     // in scope 0 at $DIR/generator_tiny.rs:+1:13: +1:15
28     let mut _4: !;                       // in scope 0 at $DIR/generator_tiny.rs:+2:9: +5:10
29     let mut _5: ();                      // in scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
30     let _6: u8;                          // in scope 0 at $DIR/generator_tiny.rs:+3:13: +3:18
31     let mut _7: ();                      // in scope 0 at $DIR/generator_tiny.rs:+3:13: +3:18
32     let _8: ();                          // in scope 0 at $DIR/generator_tiny.rs:+4:13: +4:21
33     let mut _9: ();                      // in scope 0 at $DIR/generator_tiny.rs:+0:25: +0:25
34     let _10: u8;                         // in scope 0 at $DIR/generator_tiny.rs:+0:17: +0:19
35     let mut _11: u32;                    // in scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
36     scope 1 {
37         debug _d => (((*(_1.0: &mut [generator@$DIR/generator_tiny.rs:19:16: 19:24])) as variant#3).0: HasDrop); // in scope 1 at $DIR/generator_tiny.rs:+1:13: +1:15
38     }
39
40     bb0: {
41         _11 = discriminant((*(_1.0: &mut [generator@$DIR/generator_tiny.rs:19:16: 19:24]))); // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
42         switchInt(move _11) -> [0: bb1, 3: bb5, otherwise: bb6]; // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
43     }
44
45     bb1: {
46         _10 = move _2;                   // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
47         nop;                             // scope 0 at $DIR/generator_tiny.rs:+1:13: +1:15
48         (((*(_1.0: &mut [generator@$DIR/generator_tiny.rs:19:16: 19:24])) as variant#3).0: HasDrop) = HasDrop; // scope 0 at $DIR/generator_tiny.rs:+1:18: +1:25
49         StorageLive(_4);                 // scope 1 at $DIR/generator_tiny.rs:+2:9: +5:10
50         goto -> bb2;                     // scope 1 at $DIR/generator_tiny.rs:+2:9: +5:10
51     }
52
53     bb2: {
54         StorageLive(_6);                 // scope 1 at $DIR/generator_tiny.rs:+3:13: +3:18
55         StorageLive(_7);                 // scope 1 at $DIR/generator_tiny.rs:+3:13: +3:18
56         _7 = ();                         // scope 1 at $DIR/generator_tiny.rs:+3:13: +3:18
57         _0 = GeneratorState::<(), ()>::Yielded(move _7); // scope 1 at $DIR/generator_tiny.rs:+3:13: +3:18
58         discriminant((*(_1.0: &mut [generator@$DIR/generator_tiny.rs:19:16: 19:24]))) = 3; // scope 1 at $DIR/generator_tiny.rs:+3:13: +3:18
59         return;                          // scope 1 at $DIR/generator_tiny.rs:+3:13: +3:18
60     }
61
62     bb3: {
63         StorageDead(_7);                 // scope 1 at $DIR/generator_tiny.rs:+3:17: +3:18
64         StorageDead(_6);                 // scope 1 at $DIR/generator_tiny.rs:+3:18: +3:19
65         StorageLive(_8);                 // scope 1 at $DIR/generator_tiny.rs:+4:13: +4:21
66         _8 = callee() -> bb4;            // scope 1 at $DIR/generator_tiny.rs:+4:13: +4:21
67                                          // mir::Constant
68                                          // + span: $DIR/generator_tiny.rs:23:13: 23:19
69                                          // + literal: Const { ty: fn() {callee}, val: Value(<ZST>) }
70     }
71
72     bb4: {
73         StorageDead(_8);                 // scope 1 at $DIR/generator_tiny.rs:+4:21: +4:22
74         _5 = const ();                   // scope 1 at $DIR/generator_tiny.rs:+2:14: +5:10
75         goto -> bb2;                     // scope 1 at $DIR/generator_tiny.rs:+2:9: +5:10
76     }
77
78     bb5: {
79         StorageLive(_4);                 // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
80         StorageLive(_6);                 // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
81         StorageLive(_7);                 // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
82         _6 = move _2;                    // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
83         goto -> bb3;                     // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
84     }
85
86     bb6: {
87         unreachable;                     // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
88     }
89 }