From: uHOOCCOOHu Date: Wed, 5 Jul 2017 06:51:33 +0000 (+0800) Subject: Put tests for `step_by(0)` back. X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=a80db63515365c99061b6cac3d9adf62e5a245be;p=rust.git Put tests for `step_by(0)` back. --- diff --git a/clippy_tests/examples/range.rs b/clippy_tests/examples/range.rs index f6d07f31cf5..4f4573d9e60 100644 --- a/clippy_tests/examples/range.rs +++ b/clippy_tests/examples/range.rs @@ -10,9 +10,16 @@ fn step_by(&self, _: u32) {} #[warn(iterator_step_by_zero, range_zip_with_len)] fn main() { + let _ = (0..1).step_by(0); // No warning for non-zero step let _ = (0..1).step_by(1); + let _ = (1..).step_by(0); + let _ = (1...2).step_by(0); + + let x = 0..1; + let _ = x.step_by(0); + // No error, not a range. let y = NotARange; y.step_by(0); @@ -21,4 +28,7 @@ fn main() { let v2 = vec![4,5]; let _x = v1.iter().zip(0..v1.len()); let _y = v1.iter().zip(0..v2.len()); // No error + + // check const eval + let _ = v1.iter().step_by(2/3); } diff --git a/clippy_tests/examples/range.stderr b/clippy_tests/examples/range.stderr index 3bc5fd06c41..b6951b9f713 100644 --- a/clippy_tests/examples/range.stderr +++ b/clippy_tests/examples/range.stderr @@ -1,12 +1,44 @@ +error: Iterator::step_by(0) will panic at runtime + --> range.rs:13:13 + | +13 | let _ = (0..1).step_by(0); + | ^^^^^^^^^^^^^^^^^ + | + = note: `-D iterator-step-by-zero` implied by `-D warnings` + +error: Iterator::step_by(0) will panic at runtime + --> range.rs:17:13 + | +17 | let _ = (1..).step_by(0); + | ^^^^^^^^^^^^^^^^ + +error: Iterator::step_by(0) will panic at runtime + --> range.rs:18:13 + | +18 | let _ = (1...2).step_by(0); + | ^^^^^^^^^^^^^^^^^^ + +error: Iterator::step_by(0) will panic at runtime + --> range.rs:21:13 + | +21 | let _ = x.step_by(0); + | ^^^^^^^^^^^^ + error: It is more idiomatic to use v1.iter().enumerate() - --> range.rs:22:14 + --> range.rs:29:14 | -22 | let _x = v1.iter().zip(0..v1.len()); +29 | let _x = v1.iter().zip(0..v1.len()); | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `-D range-zip-with-len` implied by `-D warnings` -error: aborting due to previous error +error: Iterator::step_by(0) will panic at runtime + --> range.rs:33:13 + | +33 | let _ = v1.iter().step_by(2/3); + | ^^^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to 6 previous errors To learn more, run the command again with --verbose.