]> git.lizzy.rs Git - rust.git/blob - tests/ui/needless_range_loop.rs
Auto merge of #3757 - mikerite:fix-2542, r=oli-obk
[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 = vec![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
41     let g = vec![1, 2, 3, 4, 5, 6];
42     let glen = g.len();
43     for i in 0..glen {
44         let x: u32 = g[i + 1..].iter().sum();
45         println!("{}", g[i] + x);
46     }
47     assert_eq!(g, vec![20, 18, 15, 11, 6, 0]);
48
49     let mut g = vec![1, 2, 3, 4, 5, 6];
50     let glen = g.len();
51     for i in 0..glen {
52         g[i] = g[i + 1..].iter().sum();
53     }
54     assert_eq!(g, vec![20, 18, 15, 11, 6, 0]);
55
56     let x = 5;
57     let mut vec = vec![0; 9];
58
59     for i in x..x + 4 {
60         vec[i] += 1;
61     }
62
63     let x = 5;
64     let mut vec = vec![0; 10];
65
66     for i in x..=x + 4 {
67         vec[i] += 1;
68     }
69
70     let arr = [1, 2, 3];
71
72     for i in 0..3 {
73         println!("{}", arr[i]);
74     }
75
76     for i in 0..2 {
77         println!("{}", arr[i]);
78     }
79
80     for i in 1..3 {
81         println!("{}", arr[i]);
82     }
83
84     // #2542
85     for i in 0..vec.len() {
86         vec[i] = Some(1).unwrap_or_else(|| panic!("error on {}", i));
87     }
88 }