error[E0499]: cannot borrow `_owner_itself` as mutable more than once at a time
--> src\main.rs:7:5
|
5 | let/*mut*/_ref_to_owner = &mut _owner_itself;
| ------------------ first mutable borrow occurs here
6 |
7 | _owner_itself.push('o'); !!!!!! WHY BORROW TERM ? !!!!!!
| ^^^^^^^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
8 | _ref_to_owner.push('r');
| ----------------------- first borrow later used here
As for my vague definition, here's an example where bar involves no actual references, and there's not even an assignment from a to b (however, the API would allow one, and the API is the contract), and yet b is in some sense a borrow of s (or of the unsized str underlying s).