error[E0382]: use of moved value: `x` --> $DIR/issue-82916.rs:7:13 | LL | fn foo(x: Vec) { | - move occurs because `x` has type `Vec`, which does not implement the `Copy` trait LL | for y in x { | - `x` moved due to this implicit call to `.into_iter()` ... LL | let z = x; | ^ value used here after move | note: `into_iter` takes ownership of the receiver `self`, which moves `x` --> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL help: consider iterating over a slice of the `Vec`'s content to avoid moving into the `for` loop | LL | for y in &x { | + error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0382`.