|  | error[E0382]: use of moved value | 
|  | --> $DIR/borrowck-move-and-move.rs:11:9 | 
|  | | | 
|  | LL |     let a @ b = U; | 
|  | |         ^   -   - move occurs because value has type `U`, which does not implement the `Copy` trait | 
|  | |         |   | | 
|  | |         |   value moved here | 
|  | |         value used here after move | 
|  | | | 
|  | help: borrow this binding in the pattern to avoid moving the value | 
|  | | | 
|  | LL |     let ref a @ ref b = U; | 
|  | |         +++     +++ | 
|  |  | 
|  | error[E0382]: use of partially moved value | 
|  | --> $DIR/borrowck-move-and-move.rs:13:9 | 
|  | | | 
|  | LL |     let a @ (b, c) = (U, U); | 
|  | |         ^       - value partially moved here | 
|  | |         | | 
|  | |         value used here after partial move | 
|  | | | 
|  | = note: partial move occurs because value has type `U`, which does not implement the `Copy` trait | 
|  | help: borrow this binding in the pattern to avoid moving the value | 
|  | | | 
|  | LL |     let ref a @ (b, ref c) = (U, U); | 
|  | |         +++         +++ | 
|  |  | 
|  | error[E0382]: use of partially moved value | 
|  | --> $DIR/borrowck-move-and-move.rs:15:9 | 
|  | | | 
|  | LL |     let a @ (b, c) = (u(), u()); | 
|  | |         ^       - value partially moved here | 
|  | |         | | 
|  | |         value used here after partial move | 
|  | | | 
|  | = note: partial move occurs because value has type `U`, which does not implement the `Copy` trait | 
|  | help: borrow this binding in the pattern to avoid moving the value | 
|  | | | 
|  | LL |     let ref a @ (b, ref c) = (u(), u()); | 
|  | |         +++         +++ | 
|  |  | 
|  | error[E0382]: use of partially moved value | 
|  | --> $DIR/borrowck-move-and-move.rs:18:9 | 
|  | | | 
|  | LL |         a @ Ok(b) | a @ Err(b) => {} | 
|  | |         ^      - value partially moved here | 
|  | |         | | 
|  | |         value used here after partial move | 
|  | | | 
|  | = note: partial move occurs because value has type `U`, which does not implement the `Copy` trait | 
|  | help: borrow this binding in the pattern to avoid moving the value | 
|  | | | 
|  | LL |         ref a @ Ok(ref b) | a @ Err(b) => {} | 
|  | |         +++        +++ | 
|  |  | 
|  | error[E0382]: use of partially moved value | 
|  | --> $DIR/borrowck-move-and-move.rs:18:21 | 
|  | | | 
|  | LL |         a @ Ok(b) | a @ Err(b) => {} | 
|  | |                     ^       - value partially moved here | 
|  | |                     | | 
|  | |                     value used here after partial move | 
|  | | | 
|  | = note: partial move occurs because value has type `U`, which does not implement the `Copy` trait | 
|  | help: borrow this binding in the pattern to avoid moving the value | 
|  | | | 
|  | LL |         a @ Ok(b) | ref a @ Err(ref b) => {} | 
|  | |                     +++         +++ | 
|  |  | 
|  | error[E0382]: use of partially moved value | 
|  | --> $DIR/borrowck-move-and-move.rs:25:9 | 
|  | | | 
|  | LL |         xs @ [a, .., b] => {} | 
|  | |         ^^           - value partially moved here | 
|  | |         | | 
|  | |         value used here after partial move | 
|  | | | 
|  | = note: partial move occurs because value has type `U`, which does not implement the `Copy` trait | 
|  | help: borrow this binding in the pattern to avoid moving the value | 
|  | | | 
|  | LL |         ref xs @ [a, .., ref b] => {} | 
|  | |         +++              +++ | 
|  |  | 
|  | error[E0382]: use of partially moved value | 
|  | --> $DIR/borrowck-move-and-move.rs:29:9 | 
|  | | | 
|  | LL |         xs @ [_, ys @ .., _] => {} | 
|  | |         ^^       -- value partially moved here | 
|  | |         | | 
|  | |         value used here after partial move | 
|  | | | 
|  | = note: partial move occurs because value has type `U`, which does not implement the `Copy` trait | 
|  | help: borrow this binding in the pattern to avoid moving the value | 
|  | | | 
|  | LL |         ref xs @ [_, ref ys @ .., _] => {} | 
|  | |         +++          +++ | 
|  |  | 
|  | error[E0382]: use of moved value | 
|  | --> $DIR/borrowck-move-and-move.rs:22:12 | 
|  | | | 
|  | LL |     fn fun(a @ b: U) {} | 
|  | |            ^   - value moved here | 
|  | |            | | 
|  | |            value used here after move | 
|  | |            move occurs because value has type `U`, which does not implement the `Copy` trait | 
|  |  | 
|  | error: aborting due to 8 previous errors | 
|  |  | 
|  | For more information about this error, try `rustc --explain E0382`. |