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`.
