-error[E0382]: use of moved value: `x`
+error[E0382]: borrow of moved value: `x`
--> $DIR/use-after-move-based-on-type.rs:4:20
|
+LL | let x = "Hello!".to_string();
+ | - move occurs because `x` has type `String`, which does not implement the `Copy` trait
LL | let _y = x;
- | -- value moved here
+ | - value moved here
LL | println!("{}", x);
- | ^ value used here after move
+ | ^ value borrowed here after move
|
- = note: move occurs because `x` has type `std::string::String`, which does not implement the `Copy` trait
+ = 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 | let _y = x.clone();
+ | ++++++++
error: aborting due to previous error