error: cannot move out of value because it is borrowed --> $DIR/bind-by-move-neither-can-live-while-the-other-survives-1.rs:14:14 | LL | Some(ref _y @ _z) => {} | ------^^^-- | | | | | value moved into `_z` here | value borrowed, by `_y`, here error: borrow of moved value --> $DIR/bind-by-move-neither-can-live-while-the-other-survives-1.rs:21:14 | LL | Some(_z @ ref _y) => {} | --^^^------ | | | | | value borrowed here after move | value moved into `_z` here | move occurs because `_z` has type `X` which does not implement the `Copy` trait error: cannot move out of value because it is borrowed --> $DIR/bind-by-move-neither-can-live-while-the-other-survives-1.rs:28:14 | LL | Some(ref mut _y @ _z) => {} | ----------^^^-- | | | | | value moved into `_z` here | value borrowed, by `_y`, here error: borrow of moved value --> $DIR/bind-by-move-neither-can-live-while-the-other-survives-1.rs:35:14 | LL | Some(_z @ ref mut _y) => {} | --^^^---------- | | | | | value borrowed here after move | value moved into `_z` here | move occurs because `_z` has type `X` which does not implement the `Copy` trait error[E0382]: borrow of moved value --> $DIR/bind-by-move-neither-can-live-while-the-other-survives-1.rs:14:14 | LL | Some(ref _y @ _z) => {} | ^^^^^^^^^-- | | | | | value moved here | value borrowed here after move | = note: move occurs because value has type `X`, which does not implement the `Copy` trait help: borrow this field in the pattern to avoid moving `x.0` | LL | Some(ref _y @ ref _z) => {} | ^^^ error[E0382]: borrow of moved value --> $DIR/bind-by-move-neither-can-live-while-the-other-survives-1.rs:28:14 | LL | Some(ref mut _y @ _z) => {} | ^^^^^^^^^^^^^-- | | | | | value moved here | value borrowed here after move | = note: move occurs because value has type `X`, which does not implement the `Copy` trait help: borrow this field in the pattern to avoid moving `x.0` | LL | Some(ref mut _y @ ref _z) => {} | ^^^ error: aborting due to 6 previous errors For more information about this error, try `rustc --explain E0382`.