]> git.lizzy.rs Git - rust.git/blob - tests/mir-opt/issue_41888.main.ElaborateDrops.after.mir
Rollup merge of #107779 - compiler-errors:issue-107775, r=jackh726
[rust.git] / tests / mir-opt / issue_41888.main.ElaborateDrops.after.mir
1 // MIR for `main` after ElaborateDrops
2
3 fn main() -> () {
4     let mut _0: ();                      // return place in scope 0 at $DIR/issue_41888.rs:+0:11: +0:11
5     let _1: E;                           // in scope 0 at $DIR/issue_41888.rs:+1:9: +1:10
6     let mut _2: bool;                    // in scope 0 at $DIR/issue_41888.rs:+2:8: +2:14
7     let mut _3: E;                       // in scope 0 at $DIR/issue_41888.rs:+3:13: +3:20
8     let mut _4: K;                       // in scope 0 at $DIR/issue_41888.rs:+3:18: +3:19
9     let mut _5: isize;                   // in scope 0 at $DIR/issue_41888.rs:+4:16: +4:24
10     let mut _7: bool;                    // in scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
11     let mut _8: bool;                    // in scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
12     let mut _9: bool;                    // in scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
13     let mut _10: isize;                  // in scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
14     let mut _11: isize;                  // in scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
15     scope 1 {
16         debug e => _1;                   // in scope 1 at $DIR/issue_41888.rs:+1:9: +1:10
17         scope 2 {
18             debug _k => _6;              // in scope 2 at $DIR/issue_41888.rs:+4:21: +4:23
19             let _6: K;                   // in scope 2 at $DIR/issue_41888.rs:+4:21: +4:23
20         }
21     }
22
23     bb0: {
24         _9 = const false;                // scope 0 at $DIR/issue_41888.rs:+1:9: +1:10
25         _7 = const false;                // scope 0 at $DIR/issue_41888.rs:+1:9: +1:10
26         _8 = const false;                // scope 0 at $DIR/issue_41888.rs:+1:9: +1:10
27         StorageLive(_1);                 // scope 0 at $DIR/issue_41888.rs:+1:9: +1:10
28         StorageLive(_2);                 // scope 1 at $DIR/issue_41888.rs:+2:8: +2:14
29         _2 = cond() -> [return: bb1, unwind: bb11]; // scope 1 at $DIR/issue_41888.rs:+2:8: +2:14
30                                          // mir::Constant
31                                          // + span: $DIR/issue_41888.rs:8:8: 8:12
32                                          // + literal: Const { ty: fn() -> bool {cond}, val: Value(<ZST>) }
33     }
34
35     bb1: {
36         switchInt(move _2) -> [0: bb7, otherwise: bb2]; // scope 1 at $DIR/issue_41888.rs:+2:8: +2:14
37     }
38
39     bb2: {
40         StorageLive(_3);                 // scope 1 at $DIR/issue_41888.rs:+3:13: +3:20
41         StorageLive(_4);                 // scope 1 at $DIR/issue_41888.rs:+3:18: +3:19
42         _4 = K;                          // scope 1 at $DIR/issue_41888.rs:+3:18: +3:19
43         _3 = E::F(move _4);              // scope 1 at $DIR/issue_41888.rs:+3:13: +3:20
44         StorageDead(_4);                 // scope 1 at $DIR/issue_41888.rs:+3:19: +3:20
45         goto -> bb14;                    // scope 1 at $DIR/issue_41888.rs:+3:9: +3:10
46     }
47
48     bb3: {
49         goto -> bb4;                     // scope 1 at $DIR/issue_41888.rs:+3:19: +3:20
50     }
51
52     bb4: {
53         StorageDead(_3);                 // scope 1 at $DIR/issue_41888.rs:+3:19: +3:20
54         _5 = discriminant(_1);           // scope 2 at $DIR/issue_41888.rs:+4:16: +4:24
55         switchInt(move _5) -> [0: bb5, otherwise: bb6]; // scope 2 at $DIR/issue_41888.rs:+4:16: +4:24
56     }
57
58     bb5: {
59         StorageLive(_6);                 // scope 2 at $DIR/issue_41888.rs:+4:21: +4:23
60         _9 = const false;                // scope 2 at $DIR/issue_41888.rs:+4:21: +4:23
61         _6 = move ((_1 as F).0: K);      // scope 2 at $DIR/issue_41888.rs:+4:21: +4:23
62         _0 = const ();                   // scope 2 at $DIR/issue_41888.rs:+4:29: +7:10
63         StorageDead(_6);                 // scope 1 at $DIR/issue_41888.rs:+7:9: +7:10
64         goto -> bb8;                     // scope 1 at $DIR/issue_41888.rs:+4:9: +7:10
65     }
66
67     bb6: {
68         _0 = const ();                   // scope 1 at $DIR/issue_41888.rs:+7:10: +7:10
69         goto -> bb8;                     // scope 1 at $DIR/issue_41888.rs:+4:9: +7:10
70     }
71
72     bb7: {
73         _0 = const ();                   // scope 1 at $DIR/issue_41888.rs:+8:6: +8:6
74         goto -> bb8;                     // scope 1 at $DIR/issue_41888.rs:+2:5: +8:6
75     }
76
77     bb8: {
78         StorageDead(_2);                 // scope 1 at $DIR/issue_41888.rs:+8:5: +8:6
79         goto -> bb20;                    // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
80     }
81
82     bb9: {
83         _7 = const false;                // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
84         _8 = const false;                // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
85         _9 = const false;                // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
86         StorageDead(_1);                 // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
87         return;                          // scope 0 at $DIR/issue_41888.rs:+9:2: +9:2
88     }
89
90     bb10 (cleanup): {
91         goto -> bb11;                    // scope 1 at $DIR/issue_41888.rs:+3:19: +3:20
92     }
93
94     bb11 (cleanup): {
95         goto -> bb12;                    // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
96     }
97
98     bb12 (cleanup): {
99         resume;                          // scope 0 at $DIR/issue_41888.rs:+0:1: +9:2
100     }
101
102     bb13 (cleanup): {
103         _7 = const true;                 // scope 1 at $DIR/issue_41888.rs:+3:9: +3:10
104         _8 = const true;                 // scope 1 at $DIR/issue_41888.rs:+3:9: +3:10
105         _9 = const true;                 // scope 1 at $DIR/issue_41888.rs:+3:9: +3:10
106         _1 = move _3;                    // scope 1 at $DIR/issue_41888.rs:+3:9: +3:10
107         goto -> bb10;                    // scope 1 at $DIR/issue_41888.rs:+3:9: +3:10
108     }
109
110     bb14: {
111         _7 = const true;                 // scope 1 at $DIR/issue_41888.rs:+3:9: +3:10
112         _8 = const true;                 // scope 1 at $DIR/issue_41888.rs:+3:9: +3:10
113         _9 = const true;                 // scope 1 at $DIR/issue_41888.rs:+3:9: +3:10
114         _1 = move _3;                    // scope 1 at $DIR/issue_41888.rs:+3:9: +3:10
115         goto -> bb3;                     // scope 1 at $DIR/issue_41888.rs:+3:9: +3:10
116     }
117
118     bb15: {
119         _7 = const false;                // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
120         goto -> bb9;                     // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
121     }
122
123     bb16 (cleanup): {
124         goto -> bb12;                    // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
125     }
126
127     bb17: {
128         drop(_1) -> [return: bb15, unwind: bb12]; // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
129     }
130
131     bb18 (cleanup): {
132         drop(_1) -> bb12;                // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
133     }
134
135     bb19: {
136         _10 = discriminant(_1);          // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
137         switchInt(move _10) -> [0: bb15, otherwise: bb17]; // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
138     }
139
140     bb20: {
141         switchInt(_7) -> [0: bb15, otherwise: bb19]; // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
142     }
143
144     bb21 (cleanup): {
145         _11 = discriminant(_1);          // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
146         switchInt(move _11) -> [0: bb16, otherwise: bb18]; // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
147     }
148
149     bb22 (cleanup): {
150         switchInt(_7) -> [0: bb12, otherwise: bb21]; // scope 0 at $DIR/issue_41888.rs:+9:1: +9:2
151     }
152 }