error[E0506]: cannot assign to `v` because it is borrowed
  --> $DIR/borrowck-overloaded-index-and-overloaded-deref.rs:31:5
   |
LL |     let i = &v[0].f;
   |              - `v` is borrowed here
LL |     v = MyVec { x: MyPtr { x: Foo { f: 23 } } };
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `v` is assigned to here but it was already borrowed
LL |
LL |     read(*i);
   |          -- borrow later used here

error: aborting due to previous error

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