We hate the async fn ;-; (/lh)

async fn is sugar for an RPIT, and RPIT is leaky around auto-traits such as Send, [1] just like nominal structs are.

Include run() as a #[test], or just desugar it and add the bound yourself.

    pub fn foo() -> impl std::future::Future<Output = ()> + Send {
        async {
            nop().await;
        }
    }

  1. OIBIT is another term for auto-trait ↩︎