rust/tests/ui/borrowck/mut-borrow-in-loop-2.stderr
surechen 4821b84b92 If the moved value is a mut reference, it is used in a generic function and it's type is a generic param, it can be reborrowed to avoid moving.
for example:

```rust
struct Y(u32);
// x's type is '& mut Y' and it is used in `fn generic<T>(x: T) {}`.
fn generic<T>(x: T) {}
```

fixes #127285
2024-07-17 10:07:02 +08:00

23 lines
850 B
Plaintext

error[E0382]: use of moved value: `value`
--> $DIR/mut-borrow-in-loop-2.rs:30:23
|
LL | fn this_does_not<'a, R>(value: &'a mut Events<R>) {
| ----- move occurs because `value` has type `&mut Events<R>`, which does not implement the `Copy` trait
LL | for _ in 0..3 {
| ------------- inside of this loop
LL | Other::handle(value);
| ^^^^^ value moved here, in previous iteration of loop
|
help: consider creating a fresh reborrow of `value` here
|
LL | Other::handle(&mut *value);
| ++++++
help: consider creating a fresh reborrow of `value` here
|
LL | Other::handle(&mut *value);
| ++++++
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0382`.