| #![warn(clippy::needless_range_loop)] | |
| #![allow(clippy::useless_vec)] | |
| //@no-rustfix | |
| fn calc_idx(i: usize) -> usize { | |
| (i + i + 20) % 4 | |
| } | |
| fn main() { | |
| let ns = vec![2, 3, 5, 7]; | |
| for i in 3..10 { | |
| //~^ needless_range_loop | |
| println!("{}", ns[i]); | |
| } | |
| for i in 3..10 { | |
| println!("{}", ns[i % 4]); | |
| } | |
| for i in 3..10 { | |
| println!("{}", ns[i % ns.len()]); | |
| } | |
| for i in 3..10 { | |
| println!("{}", ns[calc_idx(i)]); | |
| } | |
| for i in 3..10 { | |
| println!("{}", ns[calc_idx(i) % 4]); | |
| } | |
| let mut ms = vec![1, 2, 3, 4, 5, 6]; | |
| for i in 0..ms.len() { | |
| //~^ needless_range_loop | |
| ms[i] *= 2; | |
| } | |
| assert_eq!(ms, vec![2, 4, 6, 8, 10, 12]); | |
| let mut ms = vec![1, 2, 3, 4, 5, 6]; | |
| for i in 0..ms.len() { | |
| //~^ needless_range_loop | |
| let x = &mut ms[i]; | |
| *x *= 2; | |
| } | |
| assert_eq!(ms, vec![2, 4, 6, 8, 10, 12]); | |
| let g = vec![1, 2, 3, 4, 5, 6]; | |
| let glen = g.len(); | |
| for i in 0..glen { | |
| let x: u32 = g[i + 1..].iter().sum(); | |
| println!("{}", g[i] + x); | |
| } | |
| assert_eq!(g, vec![20, 18, 15, 11, 6, 0]); | |
| let mut g = vec![1, 2, 3, 4, 5, 6]; | |
| let glen = g.len(); | |
| for i in 0..glen { | |
| g[i] = g[i + 1..].iter().sum(); | |
| } | |
| assert_eq!(g, vec![20, 18, 15, 11, 6, 0]); | |
| let x = 5; | |
| let mut vec = vec![0; 9]; | |
| for i in x..x + 4 { | |
| //~^ needless_range_loop | |
| vec[i] += 1; | |
| } | |
| let x = 5; | |
| let mut vec = vec![0; 10]; | |
| for i in x..=x + 4 { | |
| //~^ needless_range_loop | |
| vec[i] += 1; | |
| } | |
| let arr = [1, 2, 3]; | |
| for i in 0..3 { | |
| //~^ needless_range_loop | |
| println!("{}", arr[i]); | |
| } | |
| for i in 0..2 { | |
| //~^ needless_range_loop | |
| println!("{}", arr[i]); | |
| } | |
| for i in 1..3 { | |
| //~^ needless_range_loop | |
| println!("{}", arr[i]); | |
| } | |
| // Fix #5945 | |
| let mut vec = vec![1, 2, 3, 4]; | |
| for i in 0..vec.len() - 1 { | |
| vec[i] += 1; | |
| } | |
| let mut vec = vec![1, 2, 3, 4]; | |
| for i in vec.len() - 3..vec.len() { | |
| vec[i] += 1; | |
| } | |
| let mut vec = vec![1, 2, 3, 4]; | |
| for i in vec.len() - 3..vec.len() - 1 { | |
| vec[i] += 1; | |
| } | |
| } | |
| mod issue2277 { | |
| pub fn example(list: &[[f64; 3]]) { | |
| let mut x: [f64; 3] = [10.; 3]; | |
| for i in 0..3 { | |
| x[i] = list.iter().map(|item| item[i]).sum::<f64>(); | |
| } | |
| } | |
| } |