// run-rustfix #![deny(clippy::while_let_on_iterator)] #![allow(unused_mut)] use std::iter::Iterator; struct Foo; impl Foo { fn foo1>(mut it: I) { while let Some(_) = it.next() { println!("{:?}", it.size_hint()); } } fn foo2>(mut it: I) { for e in it { println!("{:?}", e); } } } fn main() { Foo::foo1(vec![].into_iter()); Foo::foo2(vec![].into_iter()); }