error[E0502]: cannot borrow `x` as immutable because it is also borrowed as mutable --> $DIR/borrowck-report-with-custom-diagnostic.rs:8:13 | LL | let y = &mut x; | ------ mutable borrow occurs here LL | LL | let z = &x; | ^^ immutable borrow occurs here ... LL | y.use_mut(); | ----------- mutable borrow later used here error[E0502]: cannot borrow `x` as mutable because it is also borrowed as immutable --> $DIR/borrowck-report-with-custom-diagnostic.rs:21:21 | LL | let y = &x; | -- immutable borrow occurs here LL | LL | let z = &mut x; | ^^^^^^ mutable borrow occurs here ... LL | y.use_ref(); | ----------- immutable borrow later used here error[E0499]: cannot borrow `x` as mutable more than once at a time --> $DIR/borrowck-report-with-custom-diagnostic.rs:36:17 | LL | let y = &mut x; | ------ first mutable borrow occurs here LL | LL | let z = &mut x; | ^^^^^^ second mutable borrow occurs here ... LL | y.use_mut(); | ----------- first borrow later used here error: aborting due to 3 previous errors Some errors have detailed explanations: E0499, E0502. For more information about an error, try `rustc --explain E0499`.