]> git.lizzy.rs Git - rust.git/blob - tests/ui/needless_range_loop.rs
Auto merge of #3603 - xfix:random-state-lint, r=phansch
[rust.git] / tests / ui / needless_range_loop.rs
1 // Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution.
3 //
4 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
5 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
6 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
7 // option. This file may not be copied, modified, or distributed
8 // except according to those terms.
9
10 fn calc_idx(i: usize) -> usize {
11     (i + i + 20) % 4
12 }
13
14 fn main() {
15     let ns = vec![2, 3, 5, 7];
16
17     for i in 3..10 {
18         println!("{}", ns[i]);
19     }
20
21     for i in 3..10 {
22         println!("{}", ns[i % 4]);
23     }
24
25     for i in 3..10 {
26         println!("{}", ns[i % ns.len()]);
27     }
28
29     for i in 3..10 {
30         println!("{}", ns[calc_idx(i)]);
31     }
32
33     for i in 3..10 {
34         println!("{}", ns[calc_idx(i) % 4]);
35     }
36
37     let mut ms = vec![1, 2, 3, 4, 5, 6];
38     for i in 0..ms.len() {
39         ms[i] *= 2;
40     }
41     assert_eq!(ms, vec![2, 4, 6, 8, 10, 12]);
42
43     let mut ms = vec![1, 2, 3, 4, 5, 6];
44     for i in 0..ms.len() {
45         let x = &mut ms[i];
46         *x *= 2;
47     }
48     assert_eq!(ms, vec![2, 4, 6, 8, 10, 12]);
49
50     let g = vec![1, 2, 3, 4, 5, 6];
51     let glen = g.len();
52     for i in 0..glen {
53         let x: u32 = g[i + 1..].iter().sum();
54         println!("{}", g[i] + x);
55     }
56     assert_eq!(g, vec![20, 18, 15, 11, 6, 0]);
57
58     let mut g = vec![1, 2, 3, 4, 5, 6];
59     let glen = g.len();
60     for i in 0..glen {
61         g[i] = g[i + 1..].iter().sum();
62     }
63     assert_eq!(g, vec![20, 18, 15, 11, 6, 0]);
64
65     let x = 5;
66     let mut vec = vec![0; 9];
67
68     for i in x..x + 4 {
69         vec[i] += 1;
70     }
71
72     let x = 5;
73     let mut vec = vec![0; 10];
74
75     for i in x..=x + 4 {
76         vec[i] += 1;
77     }
78
79     let arr = [1, 2, 3];
80
81     for i in 0..3 {
82         println!("{}", arr[i]);
83     }
84
85     for i in 0..2 {
86         println!("{}", arr[i]);
87     }
88
89     for i in 1..3 {
90         println!("{}", arr[i]);
91     }
92 }