| #![allow(clippy::useless_vec)] | |
| #[warn(clippy::iterator_step_by_zero)] | |
| fn main() { | |
| let _ = vec!["A", "B", "B"].iter().step_by(0); | |
| //~^ iterator_step_by_zero | |
| let _ = "XXX".chars().step_by(0); | |
| //~^ iterator_step_by_zero | |
| let _ = (0..1).step_by(0); | |
| //~^ iterator_step_by_zero | |
| // No error, not an iterator. | |
| let y = NotIterator; | |
| y.step_by(0); | |
| // No warning for non-zero step | |
| let _ = (0..1).step_by(1); | |
| let _ = (1..).step_by(0); | |
| //~^ iterator_step_by_zero | |
| let _ = (1..=2).step_by(0); | |
| //~^ iterator_step_by_zero | |
| let x = 0..1; | |
| let _ = x.step_by(0); | |
| //~^ iterator_step_by_zero | |
| // check const eval | |
| let v1 = vec![1, 2, 3]; | |
| let _ = v1.iter().step_by(2 / 3); | |
| //~^ iterator_step_by_zero | |
| } | |
| struct NotIterator; | |
| impl NotIterator { | |
| fn step_by(&self, _: u32) {} | |
| } |