]> git.lizzy.rs Git - rust.git/blob - tests/mir-opt/building/async_await.b-{closure#0}.generator_resume.0.mir
Rollup merge of #107473 - rustbot:docs-update, r=ehuss
[rust.git] / tests / mir-opt / building / async_await.b-{closure#0}.generator_resume.0.mir
1 // MIR for `b::{closure#0}` 0 generator_resume
2 /* generator_layout = GeneratorLayout {
3     field_tys: {
4         _0: GeneratorSavedTy {
5             ty: impl std::future::Future<Output = ()>,
6             source_info: SourceInfo {
7                 span: $DIR/async_await.rs:15:8: 15:14 (#9),
8                 scope: scope[0],
9             },
10             ignore_for_traits: false,
11         },
12         _1: GeneratorSavedTy {
13             ty: impl std::future::Future<Output = ()>,
14             source_info: SourceInfo {
15                 span: $DIR/async_await.rs:16:8: 16:14 (#12),
16                 scope: scope[0],
17             },
18             ignore_for_traits: false,
19         },
20     },
21     variant_fields: {
22         Unresumed(0): [],
23         Returned (1): [],
24         Panicked (2): [],
25         Suspend0 (3): [_0],
26         Suspend1 (4): [_1],
27     },
28     storage_conflicts: BitMatrix(2x2) {
29         (_0, _0),
30         (_1, _1),
31     },
32 } */
33
34 fn b::{closure#0}(_1: Pin<&mut [async fn body@$DIR/async_await.rs:14:18: 17:2]>, _2: &mut Context<'_>) -> Poll<()> {
35     debug _task_context => _38;          // in scope 0 at $DIR/async_await.rs:+0:18: +3:2
36     let mut _0: std::task::Poll<()>;     // return place in scope 0 at $DIR/async_await.rs:+0:18: +3:2
37     let _3: ();                          // in scope 0 at $DIR/async_await.rs:+1:5: +1:14
38     let mut _4: impl std::future::Future<Output = ()>; // in scope 0 at $DIR/async_await.rs:+1:8: +1:14
39     let mut _5: impl std::future::Future<Output = ()>; // in scope 0 at $DIR/async_await.rs:+1:5: +1:8
40     let mut _6: impl std::future::Future<Output = ()>; // in scope 0 at $DIR/async_await.rs:+1:8: +1:14
41     let mut _7: ();                      // in scope 0 at $DIR/async_await.rs:+0:18: +3:2
42     let _8: ();                          // in scope 0 at $DIR/async_await.rs:+1:8: +1:14
43     let mut _9: std::task::Poll<()>;     // in scope 0 at $DIR/async_await.rs:+1:8: +1:14
44     let mut _10: std::pin::Pin<&mut impl std::future::Future<Output = ()>>; // in scope 0 at $DIR/async_await.rs:+1:8: +1:14
45     let mut _11: &mut impl std::future::Future<Output = ()>; // in scope 0 at $DIR/async_await.rs:+1:8: +1:14
46     let mut _12: &mut impl std::future::Future<Output = ()>; // in scope 0 at $DIR/async_await.rs:+1:8: +1:14
47     let mut _13: &mut std::task::Context<'_>; // in scope 0 at $DIR/async_await.rs:+1:5: +1:14
48     let mut _14: &mut std::task::Context<'_>; // in scope 0 at $DIR/async_await.rs:+1:5: +1:14
49     let mut _15: &mut std::task::Context<'_>; // in scope 0 at $DIR/async_await.rs:+1:8: +1:14
50     let mut _16: isize;                  // in scope 0 at $DIR/async_await.rs:+1:8: +1:14
51     let mut _18: !;                      // in scope 0 at $DIR/async_await.rs:+1:5: +1:14
52     let mut _19: &mut std::task::Context<'_>; // in scope 0 at $DIR/async_await.rs:+1:8: +1:14
53     let mut _20: ();                     // in scope 0 at $DIR/async_await.rs:+1:8: +1:14
54     let mut _21: impl std::future::Future<Output = ()>; // in scope 0 at $DIR/async_await.rs:+2:8: +2:14
55     let mut _22: impl std::future::Future<Output = ()>; // in scope 0 at $DIR/async_await.rs:+2:5: +2:8
56     let mut _23: impl std::future::Future<Output = ()>; // in scope 0 at $DIR/async_await.rs:+2:8: +2:14
57     let _24: ();                         // in scope 0 at $DIR/async_await.rs:+2:8: +2:14
58     let mut _25: std::task::Poll<()>;    // in scope 0 at $DIR/async_await.rs:+2:8: +2:14
59     let mut _26: std::pin::Pin<&mut impl std::future::Future<Output = ()>>; // in scope 0 at $DIR/async_await.rs:+2:8: +2:14
60     let mut _27: &mut impl std::future::Future<Output = ()>; // in scope 0 at $DIR/async_await.rs:+2:8: +2:14
61     let mut _28: &mut impl std::future::Future<Output = ()>; // in scope 0 at $DIR/async_await.rs:+2:8: +2:14
62     let mut _29: &mut std::task::Context<'_>; // in scope 0 at $DIR/async_await.rs:+2:5: +2:14
63     let mut _30: &mut std::task::Context<'_>; // in scope 0 at $DIR/async_await.rs:+2:5: +2:14
64     let mut _31: &mut std::task::Context<'_>; // in scope 0 at $DIR/async_await.rs:+2:8: +2:14
65     let mut _32: isize;                  // in scope 0 at $DIR/async_await.rs:+2:8: +2:14
66     let mut _34: !;                      // in scope 0 at $DIR/async_await.rs:+2:5: +2:14
67     let mut _35: &mut std::task::Context<'_>; // in scope 0 at $DIR/async_await.rs:+2:8: +2:14
68     let mut _36: ();                     // in scope 0 at $DIR/async_await.rs:+2:8: +2:14
69     let mut _37: ();                     // in scope 0 at $DIR/async_await.rs:+0:18: +3:2
70     let mut _38: &mut std::task::Context<'_>; // in scope 0 at $DIR/async_await.rs:+0:18: +3:2
71     let mut _39: u32;                    // in scope 0 at $DIR/async_await.rs:+0:18: +3:2
72     scope 1 {
73         debug __awaitee => (((*(_1.0: &mut [async fn body@$DIR/async_await.rs:14:18: 17:2])) as variant#3).0: impl std::future::Future<Output = ()>); // in scope 1 at $DIR/async_await.rs:+1:8: +1:14
74         let _17: ();                     // in scope 1 at $DIR/async_await.rs:+1:5: +1:14
75         scope 2 {
76         }
77         scope 3 {
78             debug result => _17;         // in scope 3 at $DIR/async_await.rs:+1:5: +1:14
79         }
80     }
81     scope 4 {
82         debug __awaitee => (((*(_1.0: &mut [async fn body@$DIR/async_await.rs:14:18: 17:2])) as variant#4).0: impl std::future::Future<Output = ()>); // in scope 4 at $DIR/async_await.rs:+2:8: +2:14
83         let _33: ();                     // in scope 4 at $DIR/async_await.rs:+2:5: +2:14
84         scope 5 {
85         }
86         scope 6 {
87             debug result => _33;         // in scope 6 at $DIR/async_await.rs:+2:5: +2:14
88         }
89     }
90
91     bb0: {
92         _39 = discriminant((*(_1.0: &mut [async fn body@$DIR/async_await.rs:14:18: 17:2]))); // scope 0 at $DIR/async_await.rs:+0:18: +3:2
93         switchInt(move _39) -> [0: bb1, 1: bb29, 3: bb27, 4: bb28, otherwise: bb30]; // scope 0 at $DIR/async_await.rs:+0:18: +3:2
94     }
95
96     bb1: {
97         _38 = move _2;                   // scope 0 at $DIR/async_await.rs:+0:18: +3:2
98         StorageLive(_3);                 // scope 0 at $DIR/async_await.rs:+1:5: +1:14
99         StorageLive(_4);                 // scope 0 at $DIR/async_await.rs:+1:8: +1:14
100         StorageLive(_5);                 // scope 0 at $DIR/async_await.rs:+1:5: +1:8
101         _5 = a() -> bb2;                 // scope 0 at $DIR/async_await.rs:+1:5: +1:8
102                                          // mir::Constant
103                                          // + span: $DIR/async_await.rs:15:5: 15:6
104                                          // + literal: Const { ty: fn() -> impl Future<Output = ()> {a}, val: Value(<ZST>) }
105     }
106
107     bb2: {
108         _4 = <impl Future<Output = ()> as IntoFuture>::into_future(move _5) -> bb3; // scope 0 at $DIR/async_await.rs:+1:8: +1:14
109                                          // mir::Constant
110                                          // + span: $DIR/async_await.rs:15:8: 15:14
111                                          // + literal: Const { ty: fn(impl Future<Output = ()>) -> <impl Future<Output = ()> as IntoFuture>::IntoFuture {<impl Future<Output = ()> as IntoFuture>::into_future}, val: Value(<ZST>) }
112     }
113
114     bb3: {
115         StorageDead(_5);                 // scope 0 at $DIR/async_await.rs:+1:13: +1:14
116         nop;                             // scope 0 at $DIR/async_await.rs:+1:8: +1:14
117         (((*(_1.0: &mut [async fn body@$DIR/async_await.rs:14:18: 17:2])) as variant#3).0: impl std::future::Future<Output = ()>) = move _4; // scope 0 at $DIR/async_await.rs:+1:8: +1:14
118         goto -> bb4;                     // scope 1 at $DIR/async_await.rs:+1:8: +1:14
119     }
120
121     bb4: {
122         StorageLive(_8);                 // scope 1 at $DIR/async_await.rs:+1:8: +1:14
123         StorageLive(_9);                 // scope 1 at $DIR/async_await.rs:+1:8: +1:14
124         StorageLive(_10);                // scope 2 at $DIR/async_await.rs:+1:8: +1:14
125         StorageLive(_11);                // scope 2 at $DIR/async_await.rs:+1:8: +1:14
126         StorageLive(_12);                // scope 2 at $DIR/async_await.rs:+1:8: +1:14
127         _12 = &mut (((*(_1.0: &mut [async fn body@$DIR/async_await.rs:14:18: 17:2])) as variant#3).0: impl std::future::Future<Output = ()>); // scope 2 at $DIR/async_await.rs:+1:8: +1:14
128         _11 = &mut (*_12);               // scope 2 at $DIR/async_await.rs:+1:8: +1:14
129         _10 = Pin::<&mut impl Future<Output = ()>>::new_unchecked(move _11) -> bb5; // scope 2 at $DIR/async_await.rs:+1:8: +1:14
130                                          // mir::Constant
131                                          // + span: $DIR/async_await.rs:15:8: 15:14
132                                          // + literal: Const { ty: unsafe fn(&mut impl Future<Output = ()>) -> Pin<&mut impl Future<Output = ()>> {Pin::<&mut impl Future<Output = ()>>::new_unchecked}, val: Value(<ZST>) }
133     }
134
135     bb5: {
136         StorageDead(_11);                // scope 2 at $DIR/async_await.rs:+1:13: +1:14
137         StorageLive(_13);                // scope 2 at $DIR/async_await.rs:+1:5: +1:14
138         StorageLive(_14);                // scope 2 at $DIR/async_await.rs:+1:5: +1:14
139         StorageLive(_15);                // scope 2 at $DIR/async_await.rs:+1:8: +1:14
140         _15 = _38;                       // scope 2 at $DIR/async_await.rs:+1:8: +1:14
141         _14 = move _15;                  // scope 2 at $DIR/async_await.rs:+1:5: +1:14
142         goto -> bb6;                     // scope 2 at $DIR/async_await.rs:+1:5: +1:14
143     }
144
145     bb6: {
146         _13 = &mut (*_14);               // scope 2 at $DIR/async_await.rs:+1:5: +1:14
147         StorageDead(_15);                // scope 2 at $DIR/async_await.rs:+1:13: +1:14
148         _9 = <impl Future<Output = ()> as Future>::poll(move _10, move _13) -> bb7; // scope 2 at $DIR/async_await.rs:+1:8: +1:14
149                                          // mir::Constant
150                                          // + span: $DIR/async_await.rs:15:8: 15:14
151                                          // + literal: Const { ty: for<'a, 'b, 'c> fn(Pin<&'a mut impl Future<Output = ()>>, &'b mut Context<'c>) -> Poll<<impl Future<Output = ()> as Future>::Output> {<impl Future<Output = ()> as Future>::poll}, val: Value(<ZST>) }
152     }
153
154     bb7: {
155         StorageDead(_13);                // scope 2 at $DIR/async_await.rs:+1:13: +1:14
156         StorageDead(_10);                // scope 2 at $DIR/async_await.rs:+1:13: +1:14
157         _16 = discriminant(_9);          // scope 1 at $DIR/async_await.rs:+1:8: +1:14
158         switchInt(move _16) -> [0: bb10, 1: bb8, otherwise: bb9]; // scope 1 at $DIR/async_await.rs:+1:8: +1:14
159     }
160
161     bb8: {
162         _8 = const ();                   // scope 1 at $DIR/async_await.rs:+1:8: +1:14
163         StorageDead(_14);                // scope 1 at $DIR/async_await.rs:+1:13: +1:14
164         StorageDead(_12);                // scope 1 at $DIR/async_await.rs:+1:13: +1:14
165         StorageDead(_9);                 // scope 1 at $DIR/async_await.rs:+1:13: +1:14
166         StorageDead(_8);                 // scope 1 at $DIR/async_await.rs:+1:13: +1:14
167         StorageLive(_19);                // scope 1 at $DIR/async_await.rs:+1:8: +1:14
168         StorageLive(_20);                // scope 1 at $DIR/async_await.rs:+1:8: +1:14
169         _20 = ();                        // scope 1 at $DIR/async_await.rs:+1:8: +1:14
170         Deinit(_0);                      // scope 1 at $DIR/async_await.rs:+1:8: +1:14
171         discriminant(_0) = 1;            // scope 1 at $DIR/async_await.rs:+1:8: +1:14
172         discriminant((*(_1.0: &mut [async fn body@$DIR/async_await.rs:14:18: 17:2]))) = 3; // scope 1 at $DIR/async_await.rs:+1:8: +1:14
173         return;                          // scope 1 at $DIR/async_await.rs:+1:8: +1:14
174     }
175
176     bb9: {
177         unreachable;                     // scope 1 at $DIR/async_await.rs:+1:8: +1:14
178     }
179
180     bb10: {
181         StorageLive(_17);                // scope 1 at $DIR/async_await.rs:+1:5: +1:14
182         _17 = ((_9 as Ready).0: ());     // scope 1 at $DIR/async_await.rs:+1:5: +1:14
183         _3 = _17;                        // scope 3 at $DIR/async_await.rs:+1:5: +1:14
184         StorageDead(_17);                // scope 1 at $DIR/async_await.rs:+1:13: +1:14
185         StorageDead(_14);                // scope 1 at $DIR/async_await.rs:+1:13: +1:14
186         StorageDead(_12);                // scope 1 at $DIR/async_await.rs:+1:13: +1:14
187         StorageDead(_9);                 // scope 1 at $DIR/async_await.rs:+1:13: +1:14
188         StorageDead(_8);                 // scope 1 at $DIR/async_await.rs:+1:13: +1:14
189         goto -> bb12;                    // scope 0 at $DIR/async_await.rs:+1:13: +1:14
190     }
191
192     bb11: {
193         StorageDead(_20);                // scope 1 at $DIR/async_await.rs:+1:13: +1:14
194         _38 = move _19;                  // scope 1 at $DIR/async_await.rs:+1:8: +1:14
195         StorageDead(_19);                // scope 1 at $DIR/async_await.rs:+1:13: +1:14
196         _7 = const ();                   // scope 1 at $DIR/async_await.rs:+1:8: +1:14
197         goto -> bb4;                     // scope 1 at $DIR/async_await.rs:+1:8: +1:14
198     }
199
200     bb12: {
201         nop;                             // scope 0 at $DIR/async_await.rs:+1:13: +1:14
202         goto -> bb13;                    // scope 0 at $DIR/async_await.rs:+1:14: +1:15
203     }
204
205     bb13: {
206         StorageDead(_4);                 // scope 0 at $DIR/async_await.rs:+1:14: +1:15
207         StorageDead(_3);                 // scope 0 at $DIR/async_await.rs:+1:14: +1:15
208         StorageLive(_21);                // scope 0 at $DIR/async_await.rs:+2:8: +2:14
209         StorageLive(_22);                // scope 0 at $DIR/async_await.rs:+2:5: +2:8
210         _22 = a() -> bb14;               // scope 0 at $DIR/async_await.rs:+2:5: +2:8
211                                          // mir::Constant
212                                          // + span: $DIR/async_await.rs:16:5: 16:6
213                                          // + literal: Const { ty: fn() -> impl Future<Output = ()> {a}, val: Value(<ZST>) }
214     }
215
216     bb14: {
217         _21 = <impl Future<Output = ()> as IntoFuture>::into_future(move _22) -> bb15; // scope 0 at $DIR/async_await.rs:+2:8: +2:14
218                                          // mir::Constant
219                                          // + span: $DIR/async_await.rs:16:8: 16:14
220                                          // + literal: Const { ty: fn(impl Future<Output = ()>) -> <impl Future<Output = ()> as IntoFuture>::IntoFuture {<impl Future<Output = ()> as IntoFuture>::into_future}, val: Value(<ZST>) }
221     }
222
223     bb15: {
224         StorageDead(_22);                // scope 0 at $DIR/async_await.rs:+2:13: +2:14
225         nop;                             // scope 0 at $DIR/async_await.rs:+2:8: +2:14
226         (((*(_1.0: &mut [async fn body@$DIR/async_await.rs:14:18: 17:2])) as variant#4).0: impl std::future::Future<Output = ()>) = move _21; // scope 0 at $DIR/async_await.rs:+2:8: +2:14
227         goto -> bb16;                    // scope 4 at $DIR/async_await.rs:+2:8: +2:14
228     }
229
230     bb16: {
231         StorageLive(_24);                // scope 4 at $DIR/async_await.rs:+2:8: +2:14
232         StorageLive(_25);                // scope 4 at $DIR/async_await.rs:+2:8: +2:14
233         StorageLive(_26);                // scope 5 at $DIR/async_await.rs:+2:8: +2:14
234         StorageLive(_27);                // scope 5 at $DIR/async_await.rs:+2:8: +2:14
235         StorageLive(_28);                // scope 5 at $DIR/async_await.rs:+2:8: +2:14
236         _28 = &mut (((*(_1.0: &mut [async fn body@$DIR/async_await.rs:14:18: 17:2])) as variant#4).0: impl std::future::Future<Output = ()>); // scope 5 at $DIR/async_await.rs:+2:8: +2:14
237         _27 = &mut (*_28);               // scope 5 at $DIR/async_await.rs:+2:8: +2:14
238         _26 = Pin::<&mut impl Future<Output = ()>>::new_unchecked(move _27) -> bb17; // scope 5 at $DIR/async_await.rs:+2:8: +2:14
239                                          // mir::Constant
240                                          // + span: $DIR/async_await.rs:16:8: 16:14
241                                          // + literal: Const { ty: unsafe fn(&mut impl Future<Output = ()>) -> Pin<&mut impl Future<Output = ()>> {Pin::<&mut impl Future<Output = ()>>::new_unchecked}, val: Value(<ZST>) }
242     }
243
244     bb17: {
245         StorageDead(_27);                // scope 5 at $DIR/async_await.rs:+2:13: +2:14
246         StorageLive(_29);                // scope 5 at $DIR/async_await.rs:+2:5: +2:14
247         StorageLive(_30);                // scope 5 at $DIR/async_await.rs:+2:5: +2:14
248         StorageLive(_31);                // scope 5 at $DIR/async_await.rs:+2:8: +2:14
249         _31 = _38;                       // scope 5 at $DIR/async_await.rs:+2:8: +2:14
250         _30 = move _31;                  // scope 5 at $DIR/async_await.rs:+2:5: +2:14
251         goto -> bb18;                    // scope 5 at $DIR/async_await.rs:+2:5: +2:14
252     }
253
254     bb18: {
255         _29 = &mut (*_30);               // scope 5 at $DIR/async_await.rs:+2:5: +2:14
256         StorageDead(_31);                // scope 5 at $DIR/async_await.rs:+2:13: +2:14
257         _25 = <impl Future<Output = ()> as Future>::poll(move _26, move _29) -> bb19; // scope 5 at $DIR/async_await.rs:+2:8: +2:14
258                                          // mir::Constant
259                                          // + span: $DIR/async_await.rs:16:8: 16:14
260                                          // + literal: Const { ty: for<'a, 'b, 'c> fn(Pin<&'a mut impl Future<Output = ()>>, &'b mut Context<'c>) -> Poll<<impl Future<Output = ()> as Future>::Output> {<impl Future<Output = ()> as Future>::poll}, val: Value(<ZST>) }
261     }
262
263     bb19: {
264         StorageDead(_29);                // scope 5 at $DIR/async_await.rs:+2:13: +2:14
265         StorageDead(_26);                // scope 5 at $DIR/async_await.rs:+2:13: +2:14
266         _32 = discriminant(_25);         // scope 4 at $DIR/async_await.rs:+2:8: +2:14
267         switchInt(move _32) -> [0: bb22, 1: bb20, otherwise: bb21]; // scope 4 at $DIR/async_await.rs:+2:8: +2:14
268     }
269
270     bb20: {
271         _24 = const ();                  // scope 4 at $DIR/async_await.rs:+2:8: +2:14
272         StorageDead(_30);                // scope 4 at $DIR/async_await.rs:+2:13: +2:14
273         StorageDead(_28);                // scope 4 at $DIR/async_await.rs:+2:13: +2:14
274         StorageDead(_25);                // scope 4 at $DIR/async_await.rs:+2:13: +2:14
275         StorageDead(_24);                // scope 4 at $DIR/async_await.rs:+2:13: +2:14
276         StorageLive(_35);                // scope 4 at $DIR/async_await.rs:+2:8: +2:14
277         StorageLive(_36);                // scope 4 at $DIR/async_await.rs:+2:8: +2:14
278         _36 = ();                        // scope 4 at $DIR/async_await.rs:+2:8: +2:14
279         Deinit(_0);                      // scope 4 at $DIR/async_await.rs:+2:8: +2:14
280         discriminant(_0) = 1;            // scope 4 at $DIR/async_await.rs:+2:8: +2:14
281         discriminant((*(_1.0: &mut [async fn body@$DIR/async_await.rs:14:18: 17:2]))) = 4; // scope 4 at $DIR/async_await.rs:+2:8: +2:14
282         return;                          // scope 4 at $DIR/async_await.rs:+2:8: +2:14
283     }
284
285     bb21: {
286         unreachable;                     // scope 4 at $DIR/async_await.rs:+2:8: +2:14
287     }
288
289     bb22: {
290         StorageLive(_33);                // scope 4 at $DIR/async_await.rs:+2:5: +2:14
291         _33 = ((_25 as Ready).0: ());    // scope 4 at $DIR/async_await.rs:+2:5: +2:14
292         _37 = _33;                       // scope 6 at $DIR/async_await.rs:+2:5: +2:14
293         StorageDead(_33);                // scope 4 at $DIR/async_await.rs:+2:13: +2:14
294         StorageDead(_30);                // scope 4 at $DIR/async_await.rs:+2:13: +2:14
295         StorageDead(_28);                // scope 4 at $DIR/async_await.rs:+2:13: +2:14
296         StorageDead(_25);                // scope 4 at $DIR/async_await.rs:+2:13: +2:14
297         StorageDead(_24);                // scope 4 at $DIR/async_await.rs:+2:13: +2:14
298         goto -> bb24;                    // scope 0 at $DIR/async_await.rs:+2:13: +2:14
299     }
300
301     bb23: {
302         StorageDead(_36);                // scope 4 at $DIR/async_await.rs:+2:13: +2:14
303         _38 = move _35;                  // scope 4 at $DIR/async_await.rs:+2:8: +2:14
304         StorageDead(_35);                // scope 4 at $DIR/async_await.rs:+2:13: +2:14
305         _7 = const ();                   // scope 4 at $DIR/async_await.rs:+2:8: +2:14
306         goto -> bb16;                    // scope 4 at $DIR/async_await.rs:+2:8: +2:14
307     }
308
309     bb24: {
310         nop;                             // scope 0 at $DIR/async_await.rs:+2:13: +2:14
311         goto -> bb25;                    // scope 0 at $DIR/async_await.rs:+3:1: +3:2
312     }
313
314     bb25: {
315         StorageDead(_21);                // scope 0 at $DIR/async_await.rs:+3:1: +3:2
316         goto -> bb26;                    // scope 0 at $DIR/async_await.rs:+3:1: +3:2
317     }
318
319     bb26: {
320         Deinit(_0);                      // scope 0 at $DIR/async_await.rs:+3:2: +3:2
321         ((_0 as Ready).0: ()) = move _37; // scope 0 at $DIR/async_await.rs:+3:2: +3:2
322         discriminant(_0) = 0;            // scope 0 at $DIR/async_await.rs:+3:2: +3:2
323         discriminant((*(_1.0: &mut [async fn body@$DIR/async_await.rs:14:18: 17:2]))) = 1; // scope 0 at $DIR/async_await.rs:+3:2: +3:2
324         return;                          // scope 0 at $DIR/async_await.rs:+3:2: +3:2
325     }
326
327     bb27: {
328         StorageLive(_3);                 // scope 0 at $DIR/async_await.rs:+0:18: +3:2
329         StorageLive(_4);                 // scope 0 at $DIR/async_await.rs:+0:18: +3:2
330         StorageLive(_19);                // scope 0 at $DIR/async_await.rs:+0:18: +3:2
331         StorageLive(_20);                // scope 0 at $DIR/async_await.rs:+0:18: +3:2
332         _19 = move _2;                   // scope 0 at $DIR/async_await.rs:+0:18: +3:2
333         goto -> bb11;                    // scope 0 at $DIR/async_await.rs:+0:18: +3:2
334     }
335
336     bb28: {
337         StorageLive(_21);                // scope 0 at $DIR/async_await.rs:+0:18: +3:2
338         StorageLive(_35);                // scope 0 at $DIR/async_await.rs:+0:18: +3:2
339         StorageLive(_36);                // scope 0 at $DIR/async_await.rs:+0:18: +3:2
340         _35 = move _2;                   // scope 0 at $DIR/async_await.rs:+0:18: +3:2
341         goto -> bb23;                    // scope 0 at $DIR/async_await.rs:+0:18: +3:2
342     }
343
344     bb29: {
345         assert(const false, "`async fn` resumed after completion") -> bb29; // scope 0 at $DIR/async_await.rs:+0:18: +3:2
346     }
347
348     bb30: {
349         unreachable;                     // scope 0 at $DIR/async_await.rs:+0:18: +3:2
350     }
351 }