error[E0525]: expected a closure that implements the `AsyncFn` trait, but this closure only implements `AsyncFnOnce` --> $DIR/kind-due-to-rpit.rs:7:20 | LL | fn repro(foo: impl Into) -> impl AsyncFn() { | -------------- the requirement to implement `AsyncFn` derives from here LL | let inner_fn = async move || { | ^^^^^^^^^^^^^ this closure implements `AsyncFnOnce`, not `AsyncFn` LL | LL | let _ = foo.into(); | --- closure is `AsyncFnOnce` because it moves the variable `foo` out of its environment LL | }; LL | inner_fn | -------- return type was inferred to be `{async closure@$DIR/kind-due-to-rpit.rs:7:20: 7:33}` here error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0525`.