c96d888bdf
After removing `GenFuture`, I special-cased async generators to pretty-print as `impl Future<Output = X>` mainly to avoid too much diagnostics changes originally. This now reverses that change so that async fn/blocks are pretty-printed as `[$movability `async` $something@$source-position]` in various diagnostics, and updates the tests that this touches.
37 lines
1.4 KiB
Plaintext
37 lines
1.4 KiB
Plaintext
error: future cannot be sent between threads safely
|
|
--> $DIR/issue-65436-raw-ptr-not-send.rs:16:17
|
|
|
|
|
LL | assert_send(async {
|
|
| _________________^
|
|
LL | |
|
|
LL | | bar(Foo(std::ptr::null())).await;
|
|
LL | | })
|
|
| |_____^ future created by async block is not `Send`
|
|
|
|
|
= help: within `[async block@$DIR/issue-65436-raw-ptr-not-send.rs:16:17: 19:6]`, the trait `Send` is not implemented for `*const u8`
|
|
note: future is not `Send` as this value is used across an await
|
|
--> $DIR/issue-65436-raw-ptr-not-send.rs:18:35
|
|
|
|
|
LL | bar(Foo(std::ptr::null())).await;
|
|
| ---------------- ^^^^^^ await occurs here, with `std::ptr::null()` maybe used later
|
|
| |
|
|
| has type `*const u8` which is not `Send`
|
|
note: `std::ptr::null()` is later dropped here
|
|
--> $DIR/issue-65436-raw-ptr-not-send.rs:18:41
|
|
|
|
|
LL | bar(Foo(std::ptr::null())).await;
|
|
| ^
|
|
help: consider moving this into a `let` binding to create a shorter lived borrow
|
|
--> $DIR/issue-65436-raw-ptr-not-send.rs:18:13
|
|
|
|
|
LL | bar(Foo(std::ptr::null())).await;
|
|
| ^^^^^^^^^^^^^^^^^^^^^
|
|
note: required by a bound in `assert_send`
|
|
--> $DIR/issue-65436-raw-ptr-not-send.rs:13:19
|
|
|
|
|
LL | fn assert_send<T: Send>(_: T) {}
|
|
| ^^^^ required by this bound in `assert_send`
|
|
|
|
error: aborting due to previous error
|
|
|