error[E0502]: cannot borrow `u` (via `u.z.c`) as immutable because it is also borrowed as mutable (via `u.s.a`)
  --> $DIR/issue-45157.rs:28:20
   |
LL |         let mref = &mut u.s.a;
   |                    ---------- mutable borrow occurs here (via `u.s.a`)
...
LL |         let nref = &u.z.c;
   |                    ^^^^^^ immutable borrow of `u.z.c` -- which overlaps with `u.s.a` -- occurs here
LL |
LL |         println!("{} {}", mref, nref)
   |                           ---- mutable borrow later used here
   |
   = note: `u.z.c` is a field of the union `U`, so it overlaps the field `u.s.a`

error: aborting due to previous error

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