mirror of
https://github.com/rust-lang/rust
synced 2024-11-05 20:45:15 +00:00
832751fe1d
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.
20 lines
773 B
Text
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`.
|