mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-12 23:13:15 +00:00
Add regression test
This commit is contained in:
parent
7f823e5bbd
commit
a775984348
20
src/test/ui/issues/issue-83924.fixed
Normal file
20
src/test/ui/issues/issue-83924.fixed
Normal file
@ -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
src/test/ui/issues/issue-83924.rs
Normal file
20
src/test/ui/issues/issue-83924.rs
Normal file
@ -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
src/test/ui/issues/issue-83924.stderr
Normal file
25
src/test/ui/issues/issue-83924.stderr
Normal file
@ -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`.
|
Loading…
Reference in New Issue
Block a user