bc4f9b848d
Give a special message when the later use is from a call. Use the span of the callee instead of the whole expression. For conflicting borrow messages say that the later use is of the first borrow.
34 lines
1.0 KiB
Plaintext
34 lines
1.0 KiB
Plaintext
error[E0502]: cannot borrow `s` as immutable because it is also borrowed as mutable
|
|
--> $DIR/borrowck-overloaded-index-ref-index.rs:62: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:65: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 a `&` reference
|
|
--> $DIR/borrowck-overloaded-index-ref-index.rs:71:5
|
|
|
|
|
LL | s[2] = 20;
|
|
| ^^^^^^^^^ cannot assign
|
|
|
|
error: aborting due to 3 previous errors
|
|
|
|
Some errors occurred: E0502, E0594.
|
|
For more information about an error, try `rustc --explain E0502`.
|