You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fn main() {
let mut v = [0; 10];
for i in 0 .. v.len() {
v[i] += i;
}
}
Currently Clippy gives notes like:
warning: the loop variable `i` is used to index `v`
--> .../main.rs:3:5
|
3 | / for i in 0 .. v.len() {
4 | | v[i] += i;
5 | | }
| |_____^
|
= note: #[warn(needless_range_loop)] on by default
= help: for further information visit https://rust-lang-nursery.github.io/rust-clippy/v0.0.161/index.html#needless_range_loop
help: consider using an iterator
|
3 | for (i, <item>) in v.iter().enumerate() {
|
Replacing array-indexing Rust code with iterators sometimes helps the compiler remove some array bound tests (but in this case the compiler is able to remove then), but in general this code change increases the compilation time (and often the max amount of memory the compiler uses). This isn't a problem if the programmer replaces few loops-with-indexing with loops-with-iterators, but introducing hundreds or thousands of loops-with-iterators in a large Rust program could slow down the compilation a lot. So in my opinion Clippy needless_range_loop should be more careful and conservative in suggesting this kind of code change.
The text was updated successfully, but these errors were encountered:
For code like:
Currently Clippy gives notes like:
Replacing array-indexing Rust code with iterators sometimes helps the compiler remove some array bound tests (but in this case the compiler is able to remove then), but in general this code change increases the compilation time (and often the max amount of memory the compiler uses). This isn't a problem if the programmer replaces few loops-with-indexing with loops-with-iterators, but introducing hundreds or thousands of loops-with-iterators in a large Rust program could slow down the compilation a lot. So in my opinion Clippy needless_range_loop should be more careful and conservative in suggesting this kind of code change.
The text was updated successfully, but these errors were encountered: