| 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 Future` |
| | |
| = help: the trait `Sync` is not implemented for `(dyn Any + 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 |
| |