]>
Commit | Line | Data |
---|---|---|
f20569fa XL |
1 | #![warn(clippy::needless_range_loop)] |
2 | ||
3 | static STATIC: [usize; 4] = [0, 1, 8, 16]; | |
4 | const CONST: [usize; 4] = [0, 1, 8, 16]; | |
5 | const MAX_LEN: usize = 42; | |
6 | ||
7 | fn main() { | |
8 | let mut vec = vec![1, 2, 3, 4]; | |
9 | let vec2 = vec![1, 2, 3, 4]; | |
10 | for i in 0..vec.len() { | |
11 | println!("{}", vec[i]); | |
12 | } | |
13 | ||
14 | for i in 0..vec.len() { | |
15 | let i = 42; // make a different `i` | |
16 | println!("{}", vec[i]); // ok, not the `i` of the for-loop | |
17 | } | |
18 | ||
19 | for i in 0..vec.len() { | |
20 | let _ = vec[i]; | |
21 | } | |
22 | ||
23 | // ICE #746 | |
24 | for j in 0..4 { | |
25 | println!("{:?}", STATIC[j]); | |
26 | } | |
27 | ||
28 | for j in 0..4 { | |
29 | println!("{:?}", CONST[j]); | |
30 | } | |
31 | ||
32 | for i in 0..vec.len() { | |
33 | println!("{} {}", vec[i], i); | |
34 | } | |
35 | for i in 0..vec.len() { | |
36 | // not an error, indexing more than one variable | |
37 | println!("{} {}", vec[i], vec2[i]); | |
38 | } | |
39 | ||
40 | for i in 0..vec.len() { | |
41 | println!("{}", vec2[i]); | |
42 | } | |
43 | ||
44 | for i in 5..vec.len() { | |
45 | println!("{}", vec[i]); | |
46 | } | |
47 | ||
48 | for i in 0..MAX_LEN { | |
49 | println!("{}", vec[i]); | |
50 | } | |
51 | ||
52 | for i in 0..=MAX_LEN { | |
53 | println!("{}", vec[i]); | |
54 | } | |
55 | ||
56 | for i in 5..10 { | |
57 | println!("{}", vec[i]); | |
58 | } | |
59 | ||
60 | for i in 5..=10 { | |
61 | println!("{}", vec[i]); | |
62 | } | |
63 | ||
64 | for i in 5..vec.len() { | |
65 | println!("{} {}", vec[i], i); | |
66 | } | |
67 | ||
68 | for i in 5..10 { | |
69 | println!("{} {}", vec[i], i); | |
70 | } | |
71 | ||
72 | // #2542 | |
73 | for i in 0..vec.len() { | |
74 | vec[i] = Some(1).unwrap_or_else(|| panic!("error on {}", i)); | |
75 | } | |
76 | ||
77 | // #3788 | |
78 | let test = Test { | |
79 | inner: vec![1, 2, 3, 4], | |
80 | }; | |
81 | for i in 0..2 { | |
82 | println!("{}", test[i]); | |
83 | } | |
84 | } | |
85 | ||
86 | struct Test { | |
87 | inner: Vec<usize>, | |
88 | } | |
89 | ||
90 | impl std::ops::Index<usize> for Test { | |
91 | type Output = usize; | |
92 | fn index(&self, index: usize) -> &Self::Output { | |
93 | &self.inner[index] | |
94 | } | |
95 | } |