error[E0382]: use of moved value: `x`
  --> $DIR/binop-move-semantics.rs:8:5
   |
LL |   fn double_move<T: Add<Output=()>>(x: T) {
   |                                     - move occurs because `x` has type `T`, which does not implement the `Copy` trait
LL | /     x
LL | |     +
LL | |     x;
   | |     ^
   | |     |
   | |_____value used here after move
   |       `x` moved due to usage in operator
   |
help: if `T` implemented `Clone`, you could clone the value
  --> $DIR/binop-move-semantics.rs:5:16
   |
LL | fn double_move<T: Add<Output=()>>(x: T) {
   |                ^ consider constraining this type parameter with `Clone`
LL |     x
   |     - you could clone this value
note: calling this operator moves the left-hand side
  --> $SRC_DIR/core/src/ops/arith.rs:LL:COL
help: consider further restricting this bound
   |
LL | fn double_move<T: Add<Output=()> + Copy>(x: T) {
   |                                  ++++++

error[E0382]: borrow of moved value: `x`
  --> $DIR/binop-move-semantics.rs:14:5
   |
LL | fn move_then_borrow<T: Add<Output=()> + Clone>(x: T) {
   |                                                - move occurs because `x` has type `T`, which does not implement the `Copy` trait
LL |     x
   |     - value moved here
LL |     +
LL |     x.clone();
   |     ^ value borrowed here after move
   |
help: consider cloning the value if the performance cost is acceptable
   |
LL |     x.clone()
   |      ++++++++
help: consider further restricting this bound
   |
LL | fn move_then_borrow<T: Add<Output=()> + Clone + Copy>(x: T) {
   |                                               ++++++

error[E0505]: cannot move out of `x` because it is borrowed
  --> $DIR/binop-move-semantics.rs:21:5
   |
LL | fn move_borrowed<T: Add<Output=()>>(x: T, mut y: T) {
   |                                     - binding `x` declared here
LL |     let m = &x;
   |             -- borrow of `x` occurs here
...
LL |     x
   |     ^ move out of `x` occurs here
...
LL |     use_mut(n); use_imm(m);
   |                         - borrow later used here
   |
help: if `T` implemented `Clone`, you could clone the value
  --> $DIR/binop-move-semantics.rs:17:18
   |
LL | fn move_borrowed<T: Add<Output=()>>(x: T, mut y: T) {
   |                  ^ consider constraining this type parameter with `Clone`
LL |     let m = &x;
   |              - you could clone this value

error[E0505]: cannot move out of `y` because it is borrowed
  --> $DIR/binop-move-semantics.rs:23:5
   |
LL | fn move_borrowed<T: Add<Output=()>>(x: T, mut y: T) {
   |                                           ----- binding `y` declared here
LL |     let m = &x;
LL |     let n = &mut y;
   |             ------ borrow of `y` occurs here
...
LL |     y;
   |     ^ move out of `y` occurs here
LL |     use_mut(n); use_imm(m);
   |             - borrow later used here
   |
help: if `T` implemented `Clone`, you could clone the value
  --> $DIR/binop-move-semantics.rs:17:18
   |
LL | fn move_borrowed<T: Add<Output=()>>(x: T, mut y: T) {
   |                  ^ consider constraining this type parameter with `Clone`
LL |     let m = &x;
LL |     let n = &mut y;
   |                  - you could clone this value

error[E0507]: cannot move out of `*m` which is behind a mutable reference
  --> $DIR/binop-move-semantics.rs:30:5
   |
LL |       *m
   |       -^
   |       |
   |  _____move occurs because `*m` has type `T`, which does not implement the `Copy` trait
   | |
LL | |     +
LL | |     *n;
   | |______- `*m` moved due to usage in operator
   |
note: calling this operator moves the left-hand side
  --> $SRC_DIR/core/src/ops/arith.rs:LL:COL
help: if `T` implemented `Clone`, you could clone the value
  --> $DIR/binop-move-semantics.rs:26:24
   |
LL | fn illegal_dereference<T: Add<Output=()>>(mut x: T, y: T) {
   |                        ^ consider constraining this type parameter with `Clone`
...
LL |     *m
   |     -- you could clone this value

error[E0507]: cannot move out of `*n` which is behind a shared reference
  --> $DIR/binop-move-semantics.rs:32:5
   |
LL |     *n;
   |     ^^ move occurs because `*n` has type `T`, which does not implement the `Copy` trait
   |
help: if `T` implemented `Clone`, you could clone the value
  --> $DIR/binop-move-semantics.rs:26:24
   |
LL | fn illegal_dereference<T: Add<Output=()>>(mut x: T, y: T) {
   |                        ^ consider constraining this type parameter with `Clone`
...
LL |     *n;
   |     -- you could clone this value

error[E0502]: cannot borrow `f` as immutable because it is also borrowed as mutable
  --> $DIR/binop-move-semantics.rs:54:5
   |
LL |       &mut f
   |       ------
   |       |
   |  _____mutable borrow occurs here
   | |
LL | |     +
LL | |     &f;
   | |     ^-
   | |_____||
   |       |mutable borrow later used here
   |       immutable borrow occurs here

error[E0502]: cannot borrow `f` as mutable because it is also borrowed as immutable
  --> $DIR/binop-move-semantics.rs:62:5
   |
LL |       &f
   |       --
   |       |
   |  _____immutable borrow occurs here
   | |
LL | |     +
LL | |     &mut f;
   | |     ^^^^^-
   | |_____|____|
   |       |    immutable borrow later used here
   |       mutable borrow occurs here

error: aborting due to 8 previous errors

Some errors have detailed explanations: E0382, E0502, E0505, E0507.
For more information about an error, try `rustc --explain E0382`.
