error[E0382]: use of moved value: `u` --> $DIR/borrowck-union-move-assign.rs:17:21 | LL | let mut u = U { a: ManuallyDrop::new(A) }; | ----- move occurs because `u` has type `U`, which does not implement the `Copy` trait LL | let a = u.a; | --- value moved here LL | let a = u.a; | ^^^ value used here after move | note: if `U` implemented `Clone`, you could clone the value --> $DIR/borrowck-union-move-assign.rs:7:1 | LL | union U { | ^^^^^^^ consider implementing `Clone` for this type ... LL | let a = u.a; | --- you could clone this value error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0382`.