about summary refs log tree commit diff
path: root/tests/ui/async-await/async-closures/wrong-fn-kind.rs
blob: 2aed6dc6d809f6ada2a1bcfa9ee484b52d78ac0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//@ 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() {}