blob: a729101bd4036f5de0ace0b0e719109757d46ae8 [file] [log] [blame]
#![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) {}
}