error[E0505]: cannot move out of `other` because it is borrowed
  --> $DIR/issue-46589.rs:21:17
   |
LL |         *other = match (*other).get_self() {
   |                        -------- borrow of `**other` occurs here
...
LL |         let c = other;
   |                 ^^^^^
   |                 |
   |                 move out of `other` occurs here
   |                 borrow later used here

error: aborting due to previous error

For more information about this error, try `rustc --explain E0505`.