summaryrefslogtreecommitdiffstats
path: root/src/test/ui/liveness/liveness-use-after-send.stderr
blob: 65d55ca8f7073ae3ec92de307d75cf1c0e7d8d2e (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
error[E0382]: borrow of moved value: `message`
  --> $DIR/liveness-use-after-send.rs:16:20
   |
LL | fn test00_start(ch: Chan<Box<isize>>, message: Box<isize>, _count: Box<isize>) {
   |                                       ------- move occurs because `message` has type `Box<isize>`, which does not implement the `Copy` trait
LL |     send(ch, message);
   |              ------- value moved here
LL |     println!("{}", message);
   |                    ^^^^^^^ value borrowed here after move
   |
note: consider changing this parameter type in function `send` to borrow instead if owning the value isn't necessary
  --> $DIR/liveness-use-after-send.rs:3:54
   |
LL | fn send<T:Send + std::fmt::Debug>(ch: Chan<T>, data: T) {
   |    ---- in this function                             ^ this parameter takes ownership of the value
   = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider cloning the value if the performance cost is acceptable
   |
LL |     send(ch, message.clone());
   |                     ++++++++

error: aborting due to previous error

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