//@ edition:2021 | |
#![feature(async_closure)] | |
fn needs_async_fn(_: impl async Fn()) {} | |
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 `async Fn` trait, but this closure only implements `async FnOnce` | |
println!("{x}"); | |
}); | |
} | |
fn main() {} |