diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/ui/async-await/issue-71137.stderr | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/ui/async-await/issue-71137.stderr b/src/test/ui/async-await/issue-71137.stderr new file mode 100644 index 000000000..eade6aa2d --- /dev/null +++ b/src/test/ui/async-await/issue-71137.stderr @@ -0,0 +1,25 @@ +error: future cannot be sent between threads safely + --> $DIR/issue-71137.rs:22:14 + | +LL | fake_spawn(wrong_mutex()); + | ^^^^^^^^^^^^^ future returned by `wrong_mutex` is not `Send` + | + = help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `MutexGuard<'_, i32>` +note: future is not `Send` as this value is used across an await + --> $DIR/issue-71137.rs:14:25 + | +LL | let mut guard = m.lock().unwrap(); + | --------- has type `MutexGuard<'_, i32>` which is not `Send` +LL | (async { "right"; }).await; + | ^^^^^^ await occurs here, with `mut guard` maybe used later +LL | *guard += 1; +LL | } + | - `mut guard` is later dropped here +note: required by a bound in `fake_spawn` + --> $DIR/issue-71137.rs:8:27 + | +LL | fn fake_spawn<F: Future + Send + 'static>(f: F) { } + | ^^^^ required by this bound in `fake_spawn` + +error: aborting due to previous error + |