error[E0382]: use of partially moved value --> $DIR/copy-and-move-mixed.rs:12:9 | LL | let a @ NC(b, c @ NC(d, e)) = NC(C, NC(C, C)); | ^ - value partially moved here | | | value used here after partial move | = note: partial move occurs because value has type `NC`, which does not implement the `Copy` trait help: borrow this binding in the pattern to avoid moving the value | LL | let ref a @ NC(b, ref c @ NC(d, e)) = NC(C, NC(C, C)); | +++ +++ error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0382`.