| error[E0499]: cannot borrow `*x` as mutable more than once at a time |
| --> $DIR/coerce-overloaded-autoderef-fail.rs:9:24 |
| | |
| LL | let y = borrow_mut(x); |
| | - first mutable borrow occurs here |
| LL | let z = borrow_mut(x); |
| | ^ second mutable borrow occurs here |
| LL | |
| LL | drop((y, z)); |
| | - first borrow later used here |
| |
| error[E0506]: cannot assign to `**x` because it is borrowed |
| --> $DIR/coerce-overloaded-autoderef-fail.rs:17:5 |
| | |
| LL | let y = borrow(x); |
| | - `**x` is borrowed here |
| LL | let z = borrow(x); |
| LL | **x += 1; |
| | ^^^^^^^^ `**x` is assigned to here but it was already borrowed |
| LL | |
| LL | drop((y, z)); |
| | - borrow later used here |
| |
| error[E0499]: cannot borrow `*x` as mutable more than once at a time |
| --> $DIR/coerce-overloaded-autoderef-fail.rs:23:20 |
| | |
| LL | borrow_mut2(x, x); |
| | ----------- - ^ second mutable borrow occurs here |
| | | | |
| | | first mutable borrow occurs here |
| | first borrow later used by call |
| |
| error[E0502]: cannot borrow `*x` as mutable because it is also borrowed as immutable |
| --> $DIR/coerce-overloaded-autoderef-fail.rs:28:5 |
| | |
| LL | borrow2(x, x); |
| | -------^^^^-^ |
| | | | |
| | | immutable borrow occurs here |
| | mutable borrow occurs here |
| | immutable borrow later used by call |
| |
| error: aborting due to 4 previous errors |
| |
| Some errors have detailed explanations: E0499, E0502, E0506. |
| For more information about an error, try `rustc --explain E0499`. |