Skip to content

Commit a80db63

Browse files
committed
Put tests for step_by(0) back.
1 parent 85384af commit a80db63

File tree

2 files changed

+45
-3
lines changed

2 files changed

+45
-3
lines changed

clippy_tests/examples/range.rs

+10
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,16 @@ impl NotARange {
1010

1111
#[warn(iterator_step_by_zero, range_zip_with_len)]
1212
fn main() {
13+
let _ = (0..1).step_by(0);
1314
// No warning for non-zero step
1415
let _ = (0..1).step_by(1);
1516

17+
let _ = (1..).step_by(0);
18+
let _ = (1...2).step_by(0);
19+
20+
let x = 0..1;
21+
let _ = x.step_by(0);
22+
1623
// No error, not a range.
1724
let y = NotARange;
1825
y.step_by(0);
@@ -21,4 +28,7 @@ fn main() {
2128
let v2 = vec![4,5];
2229
let _x = v1.iter().zip(0..v1.len());
2330
let _y = v1.iter().zip(0..v2.len()); // No error
31+
32+
// check const eval
33+
let _ = v1.iter().step_by(2/3);
2434
}

clippy_tests/examples/range.stderr

+35-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,44 @@
1+
error: Iterator::step_by(0) will panic at runtime
2+
--> range.rs:13:13
3+
|
4+
13 | let _ = (0..1).step_by(0);
5+
| ^^^^^^^^^^^^^^^^^
6+
|
7+
= note: `-D iterator-step-by-zero` implied by `-D warnings`
8+
9+
error: Iterator::step_by(0) will panic at runtime
10+
--> range.rs:17:13
11+
|
12+
17 | let _ = (1..).step_by(0);
13+
| ^^^^^^^^^^^^^^^^
14+
15+
error: Iterator::step_by(0) will panic at runtime
16+
--> range.rs:18:13
17+
|
18+
18 | let _ = (1...2).step_by(0);
19+
| ^^^^^^^^^^^^^^^^^^
20+
21+
error: Iterator::step_by(0) will panic at runtime
22+
--> range.rs:21:13
23+
|
24+
21 | let _ = x.step_by(0);
25+
| ^^^^^^^^^^^^
26+
127
error: It is more idiomatic to use v1.iter().enumerate()
2-
--> range.rs:22:14
28+
--> range.rs:29:14
329
|
4-
22 | let _x = v1.iter().zip(0..v1.len());
30+
29 | let _x = v1.iter().zip(0..v1.len());
531
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
632
|
733
= note: `-D range-zip-with-len` implied by `-D warnings`
834

9-
error: aborting due to previous error
35+
error: Iterator::step_by(0) will panic at runtime
36+
--> range.rs:33:13
37+
|
38+
33 | let _ = v1.iter().step_by(2/3);
39+
| ^^^^^^^^^^^^^^^^^^^^^^
40+
41+
error: aborting due to 6 previous errors
1042

1143

1244
To learn more, run the command again with --verbose.

0 commit comments

Comments
 (0)