summary refs log tree commit diff
path: root/src/test/ui/impl-trait/auto-trait-leak2.stderr
blob: b02ef7d4a5b13d12713c656facf47acab8fd334c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
error[E0277]: `std::rc::Rc<std::cell::Cell<i32>>` cannot be sent between threads safely
  --> $DIR/auto-trait-leak2.rs:13:5
   |
LL | fn before() -> impl Fn(i32) {
   |                ------------ within this `impl std::ops::Fn<(i32,)>`
...
LL | fn send<T: Send>(_: T) {}
   |            ---- required by this bound in `send`
...
LL |     send(before());
   |     ^^^^ `std::rc::Rc<std::cell::Cell<i32>>` cannot be sent between threads safely
   |
   = help: within `impl std::ops::Fn<(i32,)>`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<std::cell::Cell<i32>>`
   = note: required because it appears within the type `[closure@$DIR/auto-trait-leak2.rs:7:5: 7:22 p:std::rc::Rc<std::cell::Cell<i32>>]`
   = note: required because it appears within the type `impl std::ops::Fn<(i32,)>`

error[E0277]: `std::rc::Rc<std::cell::Cell<i32>>` cannot be sent between threads safely
  --> $DIR/auto-trait-leak2.rs:16:5
   |
LL | fn send<T: Send>(_: T) {}
   |            ---- required by this bound in `send`
...
LL |     send(after());
   |     ^^^^ `std::rc::Rc<std::cell::Cell<i32>>` cannot be sent between threads safely
...
LL | fn after() -> impl Fn(i32) {
   |               ------------ within this `impl std::ops::Fn<(i32,)>`
   |
   = help: within `impl std::ops::Fn<(i32,)>`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<std::cell::Cell<i32>>`
   = note: required because it appears within the type `[closure@$DIR/auto-trait-leak2.rs:24:5: 24:22 p:std::rc::Rc<std::cell::Cell<i32>>]`
   = note: required because it appears within the type `impl std::ops::Fn<(i32,)>`

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0277`.