]> git.lizzy.rs Git - rust.git/blob - tests/ui/needless_range_loop.rs
Differentiate between mutable iteration and immutable iteration in `needless_range_loop`
[rust.git] / tests / ui / needless_range_loop.rs
1 fn calc_idx(i: usize) -> usize {
2     (i + i + 20) % 4
3 }
4
5 fn main() {
6     let ns = [2, 3, 5, 7];
7
8     for i in 3..10 {
9         println!("{}", ns[i]);
10     }
11
12     for i in 3..10 {
13         println!("{}", ns[i % 4]);
14     }
15
16     for i in 3..10 {
17         println!("{}", ns[i % ns.len()]);
18     }
19
20     for i in 3..10 {
21         println!("{}", ns[calc_idx(i)]);
22     }
23
24     for i in 3..10 {
25         println!("{}", ns[calc_idx(i) % 4]);
26     }
27
28     let mut ms = vec![1, 2, 3, 4, 5, 6];
29     for i in 0..ms.len() {
30         ms[i] *= 2;
31     }
32     assert_eq!(ms, vec![2, 4, 6, 8, 10, 12]);
33
34     let mut ms = vec![1, 2, 3, 4, 5, 6];
35     for i in 0..ms.len() {
36         let x = &mut ms[i];
37         *x *= 2;
38     }
39     assert_eq!(ms, vec![2, 4, 6, 8, 10, 12]);
40 }