]> git.proxmox.com Git - rustc.git/blame - src/tools/clippy/tests/ui/needless_range_loop.rs
New upstream version 1.52.1+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / needless_range_loop.rs
CommitLineData
f20569fa
XL
1#![warn(clippy::needless_range_loop)]
2
3static STATIC: [usize; 4] = [0, 1, 8, 16];
4const CONST: [usize; 4] = [0, 1, 8, 16];
5const MAX_LEN: usize = 42;
6
7fn 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
86struct Test {
87 inner: Vec<usize>,
88}
89
90impl std::ops::Index<usize> for Test {
91 type Output = usize;
92 fn index(&self, index: usize) -> &Self::Output {
93 &self.inner[index]
94 }
95}