error[E0382]: borrow of moved value: `x` --> $DIR/borrowck-loan-in-overloaded-op.rs:21:20 | LL | let x = Foo(Box::new(3)); | - move occurs because `x` has type `Foo`, which does not implement the `Copy` trait LL | let _y = {x} + x.clone(); // the `{x}` forces a move to occur | - ^ value borrowed here after move | | | value moved here | help: consider cloning the value if the performance cost is acceptable | LL | let _y = {x.clone()} + x.clone(); // the `{x}` forces a move to occur | ++++++++ error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0382`.