| error: coroutine cannot be sent between threads safely |
| --> $DIR/ref-upvar-not-send.rs:15:17 |
| | |
| LL | assert_send(move || { |
| | _________________^ |
| LL | | |
| LL | | |
| LL | | yield; |
| LL | | let _x = x; |
| LL | | }); |
| | |_____^ coroutine is not `Send` |
| | |
| = help: the trait `Sync` is not implemented for `*mut ()`, which is required by `{coroutine@$DIR/ref-upvar-not-send.rs:15:17: 15:24}: Send` |
| note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync` |
| --> $DIR/ref-upvar-not-send.rs:19:18 |
| | |
| LL | let _x = x; |
| | ^ has type `&*mut ()` which is not `Send`, because `*mut ()` is not `Sync` |
| note: required by a bound in `assert_send` |
| --> $DIR/ref-upvar-not-send.rs:6:19 |
| | |
| LL | fn assert_send<T: Send>(_: T) {} |
| | ^^^^ required by this bound in `assert_send` |
| |
| error: coroutine cannot be sent between threads safely |
| --> $DIR/ref-upvar-not-send.rs:23:17 |
| | |
| LL | assert_send(move || { |
| | _________________^ |
| LL | | |
| LL | | |
| LL | | yield; |
| LL | | let _y = y; |
| LL | | }); |
| | |_____^ coroutine is not `Send` |
| | |
| = help: within `{coroutine@$DIR/ref-upvar-not-send.rs:23:17: 23:24}`, the trait `Send` is not implemented for `*mut ()`, which is required by `{coroutine@$DIR/ref-upvar-not-send.rs:23:17: 23:24}: Send` |
| note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send` |
| --> $DIR/ref-upvar-not-send.rs:27:18 |
| | |
| LL | let _y = y; |
| | ^ has type `&mut *mut ()` which is not `Send`, because `*mut ()` is not `Send` |
| note: required by a bound in `assert_send` |
| --> $DIR/ref-upvar-not-send.rs:6:19 |
| | |
| LL | fn assert_send<T: Send>(_: T) {} |
| | ^^^^ required by this bound in `assert_send` |
| |
| error: aborting due to 2 previous errors |
| |