1 #![allow(clippy::cognitive_complexity)]
3 static STATIC: [usize; 4] = [0, 1, 8, 16];
4 const CONST: [usize; 4] = [0, 1, 8, 16];
6 fn calc_idx(i: usize) -> usize {
11 const MAX_LEN: usize = 42;
13 let ns = vec![2, 3, 5, 7];
16 println!("{}", ns[i]);
20 println!("{}", ns[i % 4]);
24 println!("{}", ns[i % ns.len()]);
28 println!("{}", ns[calc_idx(i)]);
32 println!("{}", ns[calc_idx(i) % 4]);
35 let mut ms = vec![1, 2, 3, 4, 5, 6];
36 for i in 0..ms.len() {
39 assert_eq!(ms, vec![2, 4, 6, 8, 10, 12]);
41 let mut ms = vec![1, 2, 3, 4, 5, 6];
42 for i in 0..ms.len() {
46 assert_eq!(ms, vec![2, 4, 6, 8, 10, 12]);
48 let g = vec![1, 2, 3, 4, 5, 6];
51 let x: u32 = g[i + 1..].iter().sum();
52 println!("{}", g[i] + x);
54 assert_eq!(g, vec![20, 18, 15, 11, 6, 0]);
56 let mut g = vec![1, 2, 3, 4, 5, 6];
59 g[i] = g[i + 1..].iter().sum();
61 assert_eq!(g, vec![20, 18, 15, 11, 6, 0]);
64 let mut vec = vec![0; 9];
71 let mut vec = vec![0; 10];
80 println!("{}", arr[i]);
84 println!("{}", arr[i]);
88 println!("{}", arr[i]);
91 let mut vec = vec![1, 2, 3, 4];
92 let vec2 = vec![1, 2, 3, 4];
93 for i in 0..vec.len() {
94 println!("{}", vec[i]);
97 for i in 0..vec.len() {
98 let i = 42; // make a different `i`
99 println!("{}", vec[i]); // ok, not the `i` of the for-loop
102 for i in 0..vec.len() {
108 println!("{:?}", STATIC[j]);
112 println!("{:?}", CONST[j]);
115 for i in 0..vec.len() {
116 println!("{} {}", vec[i], i);
118 for i in 0..vec.len() {
119 // not an error, indexing more than one variable
120 println!("{} {}", vec[i], vec2[i]);
123 for i in 0..vec.len() {
124 println!("{}", vec2[i]);
127 for i in 5..vec.len() {
128 println!("{}", vec[i]);
131 for i in 0..MAX_LEN {
132 println!("{}", vec[i]);
135 for i in 0..=MAX_LEN {
136 println!("{}", vec[i]);
140 println!("{}", vec[i]);
144 println!("{}", vec[i]);
147 for i in 5..vec.len() {
148 println!("{} {}", vec[i], i);
152 println!("{} {}", vec[i], i);
156 for i in 0..vec.len() {
157 vec[i] = Some(1).unwrap_or_else(|| panic!("error on {}", i));
162 inner: vec![1, 2, 3, 4],
165 println!("{}", test[i]);
173 impl std::ops::Index<usize> for Test {
175 fn index(&self, index: usize) -> &Self::Output {