I get the following error: "value moved here, in previous iteration of loop". I just want to understand, is it possible to prove that the attempt to move the value will happen only once? `i`

is immutable and therefore cannot be changed, and the range goes through 0, so would it be okay to create a github issue asking for an enhancement?

```
struct S {
field: i32,
}
fn main() {
let s = S {field: 0};
let mut v: Vec<S> = vec![];
for i in 0..10 {
if i == 0 {
v.push(s);
}
/* this does not work either */
match i {
0 => { v.push(s); },
_ => (),
}
}
}
```