error[E0525]: expected a closure that implements the `AsyncFn` trait, but this closure only implements `AsyncFnMut` --> $DIR/kind-due-to-arg-with-box-wrap.rs:13:32 | LL | takes_asyncfn(Box::new(async || self.an_async_fn().await)); | ------------- ---------^^^^^^^^-------------------------- | | | | | | | | | closure is `AsyncFnMut` because it mutates the variable `*self` here | | | this closure implements `AsyncFnMut`, not `AsyncFn` | | the requirement to implement `AsyncFn` derives from here | required by a bound introduced by this call | = note: required for `Box<{async closure@$DIR/kind-due-to-arg-with-box-wrap.rs:13:32: 13:40}>` to implement `AsyncFn()` note: required by a bound in `takes_asyncfn` --> $DIR/kind-due-to-arg-with-box-wrap.rs:18:32 | LL | async fn takes_asyncfn(_: impl AsyncFn()) { | ^^^^^^^^^ required by this bound in `takes_asyncfn` error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0525`.