Rollup merge of #94493 - oribenshir:feature/ISSUE-78543_async_fn_in_foreign_crate_diag_2, r=davidtwco
Improved diagnostic on failure to meet send bound on future in a foreign crate Provide a better diagnostic on failure to meet send bound on futures in a foreign crate. fixes #78543
This commit is contained in:
commit
ab59516dfd
11 changed files with 248 additions and 54 deletions
|
|
@ -7,5 +7,5 @@ fn g(_: impl Send) {}
|
|||
|
||||
fn main() {
|
||||
g(issue_67893::run())
|
||||
//~^ ERROR generator cannot be sent between threads safely
|
||||
//~^ ERROR future cannot be sent between threads safely
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,22 @@
|
|||
error: generator cannot be sent between threads safely
|
||||
error: future cannot be sent between threads safely
|
||||
--> $DIR/issue-67893.rs:9:7
|
||||
|
|
||||
LL | g(issue_67893::run())
|
||||
| ^^^^^^^^^^^^^^^^^^ generator is not `Send`
|
||||
| ^^^^^^^^^^^^^^^^^^ future is not `Send`
|
||||
|
|
||||
= help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `MutexGuard<'_, ()>`
|
||||
note: future is not `Send` as this value is used across an await
|
||||
--> $DIR/auxiliary/issue_67893.rs:9:26
|
||||
|
|
||||
LL | f(*x.lock().unwrap()).await;
|
||||
| ----------------- ^^^^^^ await occurs here, with `x.lock().unwrap()` maybe used later
|
||||
| |
|
||||
| has type `MutexGuard<'_, ()>` which is not `Send`
|
||||
note: `x.lock().unwrap()` is later dropped here
|
||||
--> $DIR/auxiliary/issue_67893.rs:9:32
|
||||
|
|
||||
LL | f(*x.lock().unwrap()).await;
|
||||
| ^
|
||||
note: required by a bound in `g`
|
||||
--> $DIR/issue-67893.rs:6:14
|
||||
|
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue