#![allow(unused)] #![warn(clippy::unused_enumerate_index)] use std::iter::Enumerate; fn main() { let v = [1, 2, 3]; for x in v.iter() { println!("{x}"); } struct Dummy1; impl Dummy1 { fn enumerate(self) -> Vec { vec![] } } let dummy = Dummy1; for x in dummy.enumerate() { println!("{x}"); } struct Dummy2; impl Dummy2 { fn enumerate(self) -> Enumerate> { vec![1, 2].into_iter().enumerate() } } let dummy = Dummy2; for (_, x) in dummy.enumerate() { println!("{x}"); } let mut with_used_iterator = [1, 2, 3].into_iter().enumerate(); with_used_iterator.next(); for (_, x) in with_used_iterator { println!("{x}"); } struct Dummy3(std::vec::IntoIter); impl Iterator for Dummy3 { type Item = usize; fn next(&mut self) -> Option { self.0.next() } fn size_hint(&self) -> (usize, Option) { self.0.size_hint() } } let dummy = Dummy3(vec![1, 2, 3].into_iter()); for x in dummy { println!("{x}"); } }