//@ edition:2021 fn needs_async_fn(_: impl AsyncFn()) {} fn a() { let mut x = 1; needs_async_fn(async || { //~^ ERROR cannot borrow `x` as mutable, as it is a captured variable in a `Fn` closure x += 1; }); } fn b() { let x = String::new(); needs_async_fn(move || async move { //~^ ERROR expected a closure that implements the `AsyncFn` trait, but this closure only implements `AsyncFnOnce` println!("{x}"); }); } fn main() {}