error[E0382]: borrow of moved value: `message` --> $DIR/liveness-use-after-send.rs:16:20 | LL | fn test00_start(ch: Chan>, message: Box, _count: Box) { | ------- move occurs because `message` has type `Box`, 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(ch: Chan, 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`.