| // EMIT_MIR_FOR_EACH_PANIC_STRATEGY | |
| //@ skip-filecheck | |
| //@ test-mir-pass: Inline | |
| //@ edition: 2021 | |
| //@ compile-flags: -Zinline-mir-hint-threshold=10000 -Zinline-mir-threshold=10000 --crate-type=lib | |
| pub async fn run(permit: ActionPermit<'_, ()>, ctx: &mut core::task::Context<'_>) { | |
| run2(permit, ctx); | |
| } | |
| // EMIT_MIR inline_coroutine_body.run2-{closure#0}.Inline.diff | |
| fn run2<T>(permit: ActionPermit<'_, T>, ctx: &mut core::task::Context) { | |
| _ = || { | |
| let mut fut = ActionPermit::perform(permit); | |
| let fut = unsafe { core::pin::Pin::new_unchecked(&mut fut) }; | |
| _ = core::future::Future::poll(fut, ctx); | |
| }; | |
| } | |
| pub struct ActionPermit<'a, T> { | |
| _guard: core::cell::Ref<'a, T>, | |
| } | |
| impl<'a, T> ActionPermit<'a, T> { | |
| async fn perform(self) { | |
| core::future::ready(()).await | |
| } | |
| } |