// edition:2021
// run-rustfix

#![allow(unused)]

use std::future::Future;

async fn foo() -> Result<(), i32> {
    func(async { Ok::<_, i32>(()) }).await?;
    //~^ ERROR the `?` operator can only be applied to values that implement `Try`

    Ok(())
}

async fn func<T>(fut: impl Future<Output = T>) -> T {
    fut.await
}

fn main() {}