error[E0382]: use of moved value: `r`
  --> $DIR/pin-mut-reborrow-infer-var-issue-107419.rs:10:9
   |
LL |     let mut r = Pin::new(&mut uwu);
   |         ----- move occurs because `r` has type `Pin<&mut ()>`, which does not implement the `Copy` trait
LL |     foo(r.get_mut());
   |           --------- `r` moved due to this method call
LL |     foo(r.get_mut());
   |         ^ value used here after move
   |
note: `Pin::<&'a mut T>::get_mut` takes ownership of the receiver `self`, which moves `r`
  --> $SRC_DIR/core/src/pin.rs:LL:COL
help: consider reborrowing the `Pin` instead of moving it
   |
LL |     foo(r.as_mut().get_mut());
   |           +++++++++

error: aborting due to previous error

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