2020-04-07 08:39:07 -05:00
|
|
|
error: future cannot be sent between threads safely
|
|
|
|
--> $DIR/future_not_send.rs:8:62
|
|
|
|
|
|
|
|
|
LL | async fn private_future(rc: Rc<[u8]>, cell: &Cell<usize>) -> bool {
|
|
|
|
| ^^^^ future returned by `private_future` is not `Send`
|
|
|
|
|
|
|
|
|
= note: `-D clippy::future-not-send` implied by `-D warnings`
|
|
|
|
note: future is not `Send` as this value is used across an await
|
|
|
|
--> $DIR/future_not_send.rs:9:5
|
|
|
|
|
|
|
|
|
LL | async fn private_future(rc: Rc<[u8]>, cell: &Cell<usize>) -> bool {
|
|
|
|
| -- has type `std::rc::Rc<[u8]>` which is not `Send`
|
|
|
|
LL | async { true }.await
|
|
|
|
| ^^^^^^^^^^^^^^^^^^^^ await occurs here, with `rc` maybe used later
|
|
|
|
LL | }
|
|
|
|
| - `rc` is later dropped here
|
|
|
|
= note: `std::rc::Rc<[u8]>` doesn't implement `std::marker::Send`
|
|
|
|
note: future is not `Send` as this value is used across an await
|
|
|
|
--> $DIR/future_not_send.rs:9:5
|
|
|
|
|
|
|
|
|
LL | async fn private_future(rc: Rc<[u8]>, cell: &Cell<usize>) -> bool {
|
|
|
|
| ---- has type `&std::cell::Cell<usize>` which is not `Send`
|
|
|
|
LL | async { true }.await
|
|
|
|
| ^^^^^^^^^^^^^^^^^^^^ await occurs here, with `cell` maybe used later
|
|
|
|
LL | }
|
|
|
|
| - `cell` is later dropped here
|
|
|
|
= note: `std::cell::Cell<usize>` doesn't implement `std::marker::Sync`
|
|
|
|
|
|
|
|
error: future cannot be sent between threads safely
|
|
|
|
--> $DIR/future_not_send.rs:12:42
|
|
|
|
|
|
|
|
|
LL | pub async fn public_future(rc: Rc<[u8]>) {
|
|
|
|
| ^ future returned by `public_future` is not `Send`
|
|
|
|
|
|
|
|
|
note: future is not `Send` as this value is used across an await
|
|
|
|
--> $DIR/future_not_send.rs:13:5
|
|
|
|
|
|
|
|
|
LL | pub async fn public_future(rc: Rc<[u8]>) {
|
|
|
|
| -- has type `std::rc::Rc<[u8]>` which is not `Send`
|
|
|
|
LL | async { true }.await;
|
|
|
|
| ^^^^^^^^^^^^^^^^^^^^ await occurs here, with `rc` maybe used later
|
|
|
|
LL | }
|
|
|
|
| - `rc` is later dropped here
|
|
|
|
= note: `std::rc::Rc<[u8]>` doesn't implement `std::marker::Send`
|
|
|
|
|
|
|
|
error: future cannot be sent between threads safely
|
|
|
|
--> $DIR/future_not_send.rs:20:63
|
|
|
|
|
|
|
|
|
LL | async fn private_future2(rc: Rc<[u8]>, cell: &Cell<usize>) -> bool {
|
|
|
|
| ^^^^
|
|
|
|
|
|
|
|
|
= note: `std::rc::Rc<[u8]>` doesn't implement `std::marker::Send`
|
|
|
|
= note: `std::cell::Cell<usize>` doesn't implement `std::marker::Sync`
|
|
|
|
|
|
|
|
error: future cannot be sent between threads safely
|
|
|
|
--> $DIR/future_not_send.rs:24:43
|
|
|
|
|
|
|
|
|
LL | pub async fn public_future2(rc: Rc<[u8]>) {}
|
|
|
|
| ^
|
|
|
|
|
|
|
|
|
= note: `std::rc::Rc<[u8]>` doesn't implement `std::marker::Send`
|
|
|
|
|
|
|
|
error: future cannot be sent between threads safely
|
|
|
|
--> $DIR/future_not_send.rs:35:39
|
|
|
|
|
|
|
|
|
LL | async fn private_future(&self) -> usize {
|
|
|
|
| ^^^^^ future returned by `private_future` is not `Send`
|
|
|
|
|
|
|
|
|
note: future is not `Send` as this value is used across an await
|
|
|
|
--> $DIR/future_not_send.rs:36:9
|
|
|
|
|
|
|
|
|
LL | async fn private_future(&self) -> usize {
|
|
|
|
| ----- has type `&Dummy` which is not `Send`
|
|
|
|
LL | async { true }.await;
|
|
|
|
| ^^^^^^^^^^^^^^^^^^^^ await occurs here, with `&self` maybe used later
|
|
|
|
LL | self.rc.len()
|
|
|
|
LL | }
|
|
|
|
| - `&self` is later dropped here
|
|
|
|
= note: `std::rc::Rc<[u8]>` doesn't implement `std::marker::Sync`
|
|
|
|
|
|
|
|
error: future cannot be sent between threads safely
|
|
|
|
--> $DIR/future_not_send.rs:40:39
|
|
|
|
|
|
|
|
|
LL | pub async fn public_future(&self) {
|
|
|
|
| ^ future returned by `public_future` is not `Send`
|
|
|
|
|
|
|
|
|
note: future is not `Send` as this value is used across an await
|
|
|
|
--> $DIR/future_not_send.rs:41:9
|
|
|
|
|
|
|
|
|
LL | pub async fn public_future(&self) {
|
|
|
|
| ----- has type `&Dummy` which is not `Send`
|
|
|
|
LL | self.private_future().await;
|
|
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here, with `&self` maybe used later
|
|
|
|
LL | }
|
|
|
|
| - `&self` is later dropped here
|
|
|
|
= note: `std::rc::Rc<[u8]>` doesn't implement `std::marker::Sync`
|
|
|
|
|
|
|
|
error: future cannot be sent between threads safely
|
2020-05-07 14:41:23 -05:00
|
|
|
--> $DIR/future_not_send.rs:50:37
|
2020-04-07 08:39:07 -05:00
|
|
|
|
|
|
|
|
LL | async fn generic_future<T>(t: T) -> T
|
|
|
|
| ^ future returned by `generic_future` is not `Send`
|
|
|
|
|
|
|
|
|
note: future is not `Send` as this value is used across an await
|
2020-05-07 14:41:23 -05:00
|
|
|
--> $DIR/future_not_send.rs:55:5
|
2020-04-07 08:39:07 -05:00
|
|
|
|
|
|
|
|
LL | let rt = &t;
|
|
|
|
| -- has type `&T` which is not `Send`
|
|
|
|
LL | async { true }.await;
|
|
|
|
| ^^^^^^^^^^^^^^^^^^^^ await occurs here, with `rt` maybe used later
|
|
|
|
LL | t
|
|
|
|
LL | }
|
|
|
|
| - `rt` is later dropped here
|
|
|
|
= note: `T` doesn't implement `std::marker::Sync`
|
|
|
|
|
|
|
|
error: future cannot be sent between threads safely
|
2020-05-07 14:41:23 -05:00
|
|
|
--> $DIR/future_not_send.rs:66:34
|
2020-04-07 08:39:07 -05:00
|
|
|
|
|
|
|
|
LL | async fn unclear_future<T>(t: T) {}
|
|
|
|
| ^
|
|
|
|
|
|
|
|
|
= note: `T` doesn't implement `std::marker::Send`
|
|
|
|
|
|
|
|
error: aborting due to 8 previous errors
|
|
|
|
|