rust/tests/ui/moves/pin-mut-reborrow-infer-var-issue-107419.stderr
Nilstrieb 832751fe1d Also erase substs for new infcx in pin move error
The code originally correctly erased the regions of the type it passed
to the newly created infcx. But after the `fn_sig` query was made to
return an `EarlyBinder<T>`, some substs that were around were
substituted there without erasing their regions. They were then passed
into the newly cerated infcx, which caused the ICE.
2023-01-28 20:43:16 +01:00

20 lines
773 B
Text

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`.