1 #[warn(clippy::iterator_step_by_zero)]
main()2 fn main() {
3     let _ = vec!["A", "B", "B"].iter().step_by(0);
4     let _ = "XXX".chars().step_by(0);
5     let _ = (0..1).step_by(0);
6 
7     // No error, not an iterator.
8     let y = NotIterator;
9     y.step_by(0);
10 
11     // No warning for non-zero step
12     let _ = (0..1).step_by(1);
13 
14     let _ = (1..).step_by(0);
15     let _ = (1..=2).step_by(0);
16 
17     let x = 0..1;
18     let _ = x.step_by(0);
19 
20     // check const eval
21     let v1 = vec![1, 2, 3];
22     let _ = v1.iter().step_by(2 / 3);
23 }
24 
25 struct NotIterator;
26 impl NotIterator {
step_by(&self, _: u32)27     fn step_by(&self, _: u32) {}
28 }
29