Skip to content

Commit

Permalink
Add regression test
Browse files Browse the repository at this point in the history
  • Loading branch information
SkiFire13 committed Apr 6, 2021
1 parent 7f823e5 commit a775984
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/test/ui/issues/issue-83924.fixed
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// run-rustfix

fn main() {
let mut values = vec![10, 11, 12];
let v = &mut values;

let mut max = 0;

for n in &mut *v {
max = std::cmp::max(max, *n);
}

println!("max is {}", max);
println!("Converting to percentages of maximum value...");
for n in v {
//~^ ERROR: use of moved value: `v` [E0382]
*n = 100 * (*n) / max;
}
println!("values: {:#?}", values);
}
20 changes: 20 additions & 0 deletions src/test/ui/issues/issue-83924.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// run-rustfix

fn main() {
let mut values = vec![10, 11, 12];
let v = &mut values;

let mut max = 0;

for n in v {
max = std::cmp::max(max, *n);
}

println!("max is {}", max);
println!("Converting to percentages of maximum value...");
for n in v {
//~^ ERROR: use of moved value: `v` [E0382]
*n = 100 * (*n) / max;
}
println!("values: {:#?}", values);
}
25 changes: 25 additions & 0 deletions src/test/ui/issues/issue-83924.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
error[E0382]: use of moved value: `v`
--> $DIR/issue-83924.rs:15:14
|
LL | let v = &mut values;
| - move occurs because `v` has type `&mut Vec<i32>`, which does not implement the `Copy` trait
...
LL | for n in v {
| - `v` moved due to this implicit call to `.into_iter()`
...
LL | for n in v {
| ^ value used here after move
|
note: this function takes ownership of the receiver `self`, which moves `v`
--> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL
|
LL | fn into_iter(self) -> Self::IntoIter;
| ^^^^
help: consider creating a fresh reborrow of `v` here
|
LL | for n in &mut *v {
| ^^^^^^

error: aborting due to previous error

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

0 comments on commit a775984

Please sign in to comment.