#![warn(clippy::needless_range_loop)] #![allow(clippy::uninlined_format_args)] static STATIC: [usize; 4] = [0, 1, 8, 16]; const CONST: [usize; 4] = [0, 1, 8, 16]; const MAX_LEN: usize = 42; fn main() { let mut vec = vec![1, 2, 3, 4]; let vec2 = vec![1, 2, 3, 4]; for i in 0..vec.len() { println!("{}", vec[i]); } for i in 0..vec.len() { let i = 42; // make a different `i` println!("{}", vec[i]); // ok, not the `i` of the for-loop } for i in 0..vec.len() { let _ = vec[i]; } // ICE #746 for j in 0..4 { println!("{:?}", STATIC[j]); } for j in 0..4 { println!("{:?}", CONST[j]); } for i in 0..vec.len() { println!("{} {}", vec[i], i); } for i in 0..vec.len() { // not an error, indexing more than one variable println!("{} {}", vec[i], vec2[i]); } for i in 0..vec.len() { println!("{}", vec2[i]); } for i in 5..vec.len() { println!("{}", vec[i]); } for i in 0..MAX_LEN { println!("{}", vec[i]); } for i in 0..=MAX_LEN { println!("{}", vec[i]); } for i in 5..10 { println!("{}", vec[i]); } for i in 5..=10 { println!("{}", vec[i]); } for i in 5..vec.len() { println!("{} {}", vec[i], i); } for i in 5..10 { println!("{} {}", vec[i], i); } // #2542 for i in 0..vec.len() { vec[i] = Some(1).unwrap_or_else(|| panic!("error on {}", i)); } // #3788 let test = Test { inner: vec![1, 2, 3, 4], }; for i in 0..2 { println!("{}", test[i]); } } struct Test { inner: Vec, } impl std::ops::Index for Test { type Output = usize; fn index(&self, index: usize) -> &Self::Output { &self.inner[index] } }