error: future cannot be sent between threads safely
  --> $DIR/issue-64130-4-async-move.rs:15:17
   |
LL |   pub fn foo() -> impl Future + Send {
   |                   ^^^^^^^^^^^^^^^^^^ future created by async block is not `Send`
...
LL | /     async move {
LL | |         match client.status() {
LL | |             200 => {
LL | |                 let _x = get().await;
...  |
LL | |         }
LL | |     }
   | |_____- this returned value is of type `impl std::future::Future`
   |
   = help: the trait `std::marker::Sync` is not implemented for `(dyn std::any::Any + std::marker::Send + 'static)`
note: future is not `Send` as this value is used across an await
  --> $DIR/issue-64130-4-async-move.rs:21:26
   |
LL |         match client.status() {
   |               ------ has type `&Client` which is not `Send`
LL |             200 => {
LL |                 let _x = get().await;
   |                          ^^^^^^^^^^^ await occurs here, with `client` maybe used later
...
LL |     }
   |     - `client` is later dropped here
help: consider moving this into a `let` binding to create a shorter lived borrow
  --> $DIR/issue-64130-4-async-move.rs:19:15
   |
LL |         match client.status() {
   |               ^^^^^^^^^^^^^^^
   = note: the return type of a function must have a statically known size

error: aborting due to previous error

