error[E0506]: cannot assign to `p.x` because it is borrowed --> $DIR/borrowck-assign-comp.rs:10:5 | LL | let q = &p; | -- borrow of `p.x` occurs here ... LL | p.x = 5; | ^^^^^^^ assignment to borrowed `p.x` occurs here LL | q.x; | --- borrow later used here error[E0506]: cannot assign to `p` because it is borrowed --> $DIR/borrowck-assign-comp.rs:20:5 | LL | let q = &p.y; | ---- borrow of `p` occurs here LL | p = Point {x: 5, y: 7}; | ^^^^^^^^^^^^^^^^^^^^^^ assignment to borrowed `p` occurs here LL | p.x; // silence warning LL | *q; // stretch loan | -- borrow later used here error[E0506]: cannot assign to `p.y` because it is borrowed --> $DIR/borrowck-assign-comp.rs:31:5 | LL | let q = &p.y; | ---- borrow of `p.y` occurs here LL | p.y = 5; | ^^^^^^^ assignment to borrowed `p.y` occurs here LL | *q; | -- borrow later used here error: aborting due to 3 previous errors For more information about this error, try `rustc --explain E0506`.