95 lines
3.6 KiB
Plaintext
95 lines
3.6 KiB
Plaintext
error: future cannot be sent between threads safely
|
|
--> $DIR/async-await-let-else.rs:48:13
|
|
|
|
|
LL | is_send(foo(Some(true)));
|
|
| ^^^^^^^^^^^^^^^ future returned by `foo` is not `Send`
|
|
|
|
|
= help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
|
|
= note: use `std::sync::Arc` instead of `std::rc::Rc`
|
|
note: future is not `Send` as this value is used across an await
|
|
--> $DIR/async-await-let-else.rs:11:15
|
|
|
|
|
LL | let r = Rc::new(());
|
|
| - has type `Rc<()>` which is not `Send`
|
|
LL | bar().await
|
|
| ^^^^^ await occurs here, with `r` maybe used later
|
|
LL | };
|
|
| - `r` is later dropped here
|
|
note: required by a bound in `is_send`
|
|
--> $DIR/async-await-let-else.rs:19:15
|
|
|
|
|
LL | fn is_send<T: Send>(_: T) {}
|
|
| ^^^^ required by this bound in `is_send`
|
|
|
|
error: future cannot be sent between threads safely
|
|
--> $DIR/async-await-let-else.rs:50:13
|
|
|
|
|
LL | is_send(foo2(Some(true)));
|
|
| ^^^^^^^^^^^^^^^^ future returned by `foo2` is not `Send`
|
|
|
|
|
= help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
|
|
= note: use `std::sync::Arc` instead of `std::rc::Rc`
|
|
note: future is not `Send` as this value is used across an await
|
|
--> $DIR/async-await-let-else.rs:23:27
|
|
|
|
|
LL | bar2(Rc::new(())).await
|
|
| ----------- ^^^^^ await occurs here, with `Rc::new(())` maybe used later
|
|
| |
|
|
| has type `Rc<()>` which is not `Send`
|
|
LL | };
|
|
| - `Rc::new(())` is later dropped here
|
|
note: required by a bound in `is_send`
|
|
--> $DIR/async-await-let-else.rs:19:15
|
|
|
|
|
LL | fn is_send<T: Send>(_: T) {}
|
|
| ^^^^ required by this bound in `is_send`
|
|
|
|
error: future cannot be sent between threads safely
|
|
--> $DIR/async-await-let-else.rs:52:13
|
|
|
|
|
LL | is_send(foo3(Some(true)));
|
|
| ^^^^^^^^^^^^^^^^ future returned by `foo3` is not `Send`
|
|
|
|
|
= help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
|
|
= note: use `std::sync::Arc` instead of `std::rc::Rc`
|
|
note: future is not `Send` as this value is used across an await
|
|
--> $DIR/async-await-let-else.rs:33:29
|
|
|
|
|
LL | (Rc::new(()), bar().await);
|
|
| ----------- ^^^^^ - `Rc::new(())` is later dropped here
|
|
| | |
|
|
| | await occurs here, with `Rc::new(())` maybe used later
|
|
| has type `Rc<()>` which is not `Send`
|
|
note: required by a bound in `is_send`
|
|
--> $DIR/async-await-let-else.rs:19:15
|
|
|
|
|
LL | fn is_send<T: Send>(_: T) {}
|
|
| ^^^^ required by this bound in `is_send`
|
|
|
|
error: future cannot be sent between threads safely
|
|
--> $DIR/async-await-let-else.rs:54:13
|
|
|
|
|
LL | is_send(foo4(Some(true)));
|
|
| ^^^^^^^^^^^^^^^^ future returned by `foo4` is not `Send`
|
|
|
|
|
= help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
|
|
= note: use `std::sync::Arc` instead of `std::rc::Rc`
|
|
note: future is not `Send` as this value is used across an await
|
|
--> $DIR/async-await-let-else.rs:41:15
|
|
|
|
|
LL | let r = Rc::new(());
|
|
| - has type `Rc<()>` which is not `Send`
|
|
LL | bar().await;
|
|
| ^^^^^ await occurs here, with `r` maybe used later
|
|
...
|
|
LL | };
|
|
| - `r` is later dropped here
|
|
note: required by a bound in `is_send`
|
|
--> $DIR/async-await-let-else.rs:19:15
|
|
|
|
|
LL | fn is_send<T: Send>(_: T) {}
|
|
| ^^^^ required by this bound in `is_send`
|
|
|
|
error: aborting due to 4 previous errors
|
|
|