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