1 error: future cannot be sent between threads safely
2 --> $DIR/async-await-let-else.rs:48:13
4 LL | is_send(foo(Some(true)));
5 | ^^^^^^^^^^^^^^^ future returned by `foo` is not `Send`
7 = help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
8 note: future is not `Send` as this value is used across an await
9 --> $DIR/async-await-let-else.rs:11:14
11 LL | let r = Rc::new(());
12 | - has type `Rc<()>` which is not `Send`
14 | ^^^^^^ await occurs here, with `r` maybe used later
16 | - `r` is later dropped here
17 note: required by a bound in `is_send`
18 --> $DIR/async-await-let-else.rs:19:15
20 LL | fn is_send<T: Send>(_: T) {}
21 | ^^^^ required by this bound in `is_send`
23 error[E0277]: `Rc<()>` cannot be sent between threads safely
24 --> $DIR/async-await-let-else.rs:50:13
26 LL | async fn foo2(x: Option<bool>) {
27 | - within this `impl Future<Output = ()>`
29 LL | is_send(foo2(Some(true)));
30 | ------- ^^^^^^^^^^^^^^^^ `Rc<()>` cannot be sent between threads safely
32 | required by a bound introduced by this call
34 = help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
35 note: required because it's used within this `async fn` body
36 --> $DIR/async-await-let-else.rs:27:29
38 LL | async fn bar2<T>(_: T) -> ! {
39 | _____________________________^
43 = note: required because it captures the following types: `ResumeTy`, `Option<bool>`, `impl Future<Output = !>`, `()`
44 note: required because it's used within this `async fn` body
45 --> $DIR/async-await-let-else.rs:21:32
47 LL | async fn foo2(x: Option<bool>) {
48 | ________________________________^
49 LL | | let Some(_) = x else {
50 LL | | bar2(Rc::new(())).await
54 note: required by a bound in `is_send`
55 --> $DIR/async-await-let-else.rs:19:15
57 LL | fn is_send<T: Send>(_: T) {}
58 | ^^^^ required by this bound in `is_send`
60 error: future cannot be sent between threads safely
61 --> $DIR/async-await-let-else.rs:52:13
63 LL | is_send(foo3(Some(true)));
64 | ^^^^^^^^^^^^^^^^ future returned by `foo3` is not `Send`
66 = help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
67 note: future is not `Send` as this value is used across an await
68 --> $DIR/async-await-let-else.rs:33:28
70 LL | (Rc::new(()), bar().await);
71 | ----------- ^^^^^^ await occurs here, with `Rc::new(())` maybe used later
73 | has type `Rc<()>` which is not `Send`
74 note: `Rc::new(())` is later dropped here
75 --> $DIR/async-await-let-else.rs:33:35
77 LL | (Rc::new(()), bar().await);
79 note: required by a bound in `is_send`
80 --> $DIR/async-await-let-else.rs:19:15
82 LL | fn is_send<T: Send>(_: T) {}
83 | ^^^^ required by this bound in `is_send`
85 error: future cannot be sent between threads safely
86 --> $DIR/async-await-let-else.rs:54:13
88 LL | is_send(foo4(Some(true)));
89 | ^^^^^^^^^^^^^^^^ future returned by `foo4` is not `Send`
91 = help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
92 note: future is not `Send` as this value is used across an await
93 --> $DIR/async-await-let-else.rs:41:14
95 LL | let r = Rc::new(());
96 | - has type `Rc<()>` which is not `Send`
98 | ^^^^^^ await occurs here, with `r` maybe used later
101 | - `r` is later dropped here
102 note: required by a bound in `is_send`
103 --> $DIR/async-await-let-else.rs:19:15
105 LL | fn is_send<T: Send>(_: T) {}
106 | ^^^^ required by this bound in `is_send`
108 error: aborting due to 4 previous errors
110 For more information about this error, try `rustc --explain E0277`.