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

error: aborting due to previous error

For more information about this error, try `rustc --explain E0382`.