error[E0506]: cannot assign to `v` because it is borrowed --> $DIR/borrowck-overloaded-index-and-overloaded-deref.rs:34:5 | LL | let i = &v[0].f; | - borrow of `v` occurs here LL | v = MyVec { x: MyPtr { x: Foo { f: 23 } } }; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ assignment to borrowed `v` occurs here ... LL | read(*i); | -- borrow later used here error: aborting due to previous error For more information about this error, try `rustc --explain E0506`.