From a80db63515365c99061b6cac3d9adf62e5a245be Mon Sep 17 00:00:00 2001
From: uHOOCCOOHu <hooccooh1896@gmail.com>
Date: Wed, 5 Jul 2017 14:51:33 +0800
Subject: [PATCH] Put tests for `step_by(0)` back.

---
 clippy_tests/examples/range.rs     | 10 ++++++++
 clippy_tests/examples/range.stderr | 40 +++++++++++++++++++++++++++---
 2 files changed, 46 insertions(+), 4 deletions(-)

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 @@ impl NotARange {
 
 #[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: It is more idiomatic to use v1.iter().enumerate()
-  --> range.rs:22:14
+error: Iterator::step_by(0) will panic at runtime
+  --> range.rs:13:13
    |
-22 |     let _x = v1.iter().zip(0..v1.len());
+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:29:14
+   |
+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.