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