error[E0502]: cannot borrow `s` as immutable because it is also borrowed as mutable --> $DIR/borrowck-overloaded-index-ref-index.rs:49:22 | LL | let rs = &mut s; | ------ mutable borrow occurs here LL | println!("{}", f[&s]); | ^^ immutable borrow occurs here ... LL | drop(rs); | -- mutable borrow later used here error[E0502]: cannot borrow `s` as immutable because it is also borrowed as mutable --> $DIR/borrowck-overloaded-index-ref-index.rs:51:7 | LL | let rs = &mut s; | ------ mutable borrow occurs here ... LL | f[&s] = 10; | ^^ immutable borrow occurs here ... LL | drop(rs); | -- mutable borrow later used here error[E0594]: cannot assign to data in an index of `Bar` --> $DIR/borrowck-overloaded-index-ref-index.rs:56:5 | LL | s[2] = 20; | ^^^^^^^^^ cannot assign | = help: trait `IndexMut` is required to modify indexed content, but it is not implemented for `Bar` error: aborting due to 3 previous errors Some errors have detailed explanations: E0502, E0594. For more information about an error, try `rustc --explain E0502`.