]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/generator_drop_cleanup.main-{closure#0}.generator_drop.0.mir
Add #[const_trait] where needed in tests.
[rust.git] / src / test / mir-opt / generator_drop_cleanup.main-{closure#0}.generator_drop.0.mir
1 // MIR for `main::{closure#0}` 0 generator_drop
2 /* generator_layout = GeneratorLayout {
3     field_tys: {
4         _0: std::string::String,
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: *mut [generator@$DIR/generator_drop_cleanup.rs:10:15: 10:17]) -> () {
18     let mut _0: ();                      // return place in scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
19     let mut _2: ();                      // in scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
20     let _3: std::string::String;         // in scope 0 at $DIR/generator_drop_cleanup.rs:+1:13: +1:15
21     let _4: ();                          // in scope 0 at $DIR/generator_drop_cleanup.rs:+2:9: +2:14
22     let mut _5: ();                      // in scope 0 at $DIR/generator_drop_cleanup.rs:+2:9: +2:14
23     let mut _6: ();                      // in scope 0 at $DIR/generator_drop_cleanup.rs:+0:18: +0:18
24     let mut _7: ();                      // in scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
25     let mut _8: u32;                     // in scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
26     scope 1 {
27         debug _s => (((*_1) as variant#3).0: std::string::String); // in scope 1 at $DIR/generator_drop_cleanup.rs:+1:13: +1:15
28     }
29
30     bb0: {
31         _8 = discriminant((*_1));        // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
32         switchInt(move _8) -> [0_u32: bb7, 3_u32: bb10, otherwise: bb11]; // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
33     }
34
35     bb1: {
36         StorageDead(_5);                 // scope 1 at $DIR/generator_drop_cleanup.rs:+2:13: +2:14
37         StorageDead(_4);                 // scope 1 at $DIR/generator_drop_cleanup.rs:+2:14: +2:15
38         drop((((*_1) as variant#3).0: std::string::String)) -> [return: bb2, unwind: bb5]; // scope 0 at $DIR/generator_drop_cleanup.rs:+3:5: +3:6
39     }
40
41     bb2: {
42         nop;                             // scope 0 at $DIR/generator_drop_cleanup.rs:+3:5: +3:6
43         goto -> bb8;                     // scope 0 at $DIR/generator_drop_cleanup.rs:+3:5: +3:6
44     }
45
46     bb3: {
47         return;                          // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
48     }
49
50     bb4 (cleanup): {
51         resume;                          // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
52     }
53
54     bb5 (cleanup): {
55         nop;                             // scope 0 at $DIR/generator_drop_cleanup.rs:+3:5: +3:6
56         goto -> bb4;                     // scope 0 at $DIR/generator_drop_cleanup.rs:+3:5: +3:6
57     }
58
59     bb6: {
60         return;                          // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
61     }
62
63     bb7: {
64         goto -> bb9;                     // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
65     }
66
67     bb8: {
68         goto -> bb3;                     // scope 0 at $DIR/generator_drop_cleanup.rs:+3:5: +3:6
69     }
70
71     bb9: {
72         goto -> bb6;                     // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
73     }
74
75     bb10: {
76         StorageLive(_4);                 // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
77         StorageLive(_5);                 // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
78         goto -> bb1;                     // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
79     }
80
81     bb11: {
82         return;                          // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
83     }
84 }