blob: d079807ab5877a1f36a62786f980b2653278fd11 [file] [log] [blame]
#![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<usize> {
vec![]
}
}
let dummy = Dummy1;
for x in dummy.enumerate() {
println!("{x}");
}
struct Dummy2;
impl Dummy2 {
fn enumerate(self) -> Enumerate<std::vec::IntoIter<usize>> {
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<usize>);
impl Iterator for Dummy3 {
type Item = usize;
fn next(&mut self) -> Option<Self::Item> {
self.0.next()
}
fn size_hint(&self) -> (usize, Option<usize>) {
self.0.size_hint()
}
}
let dummy = Dummy3(vec![1, 2, 3].into_iter());
for x in dummy {
println!("{x}");
}
}