error[E0506]: cannot assign to `a.y` because it is borrowed --> $DIR/union.rs:20:5 | LL | let mut c = || { | -- borrow of `a.y` occurs here ... LL | let _ = &mut a; | - borrow occurs due to use in closure ... LL | a.y = 1; | ^^^^^^^ assignment to borrowed `a.y` occurs here ... LL | c(); | - borrow later used here error: aborting due to previous error For more information about this error, try `rustc --explain E0506`.