4 fn get_self(&mut self) -> Option<&mut Self> {
8 fn new_self(&mut self) -> &mut Self {
12 fn trigger_bug(&mut self) {
13 let other = &mut (&mut *self);
15 *other = match (*other).get_self() {
17 None => (*other).new_self()
18 //~^ ERROR cannot borrow `**other` as mutable more than once at a time [E0499]