File tree 2 files changed +45
-3
lines changed
2 files changed +45
-3
lines changed Original file line number Diff line number Diff line change @@ -10,9 +10,16 @@ impl NotARange {
10
10
11
11
#[ warn( iterator_step_by_zero, range_zip_with_len) ]
12
12
fn main ( ) {
13
+ let _ = ( 0 ..1 ) . step_by ( 0 ) ;
13
14
// No warning for non-zero step
14
15
let _ = ( 0 ..1 ) . step_by ( 1 ) ;
15
16
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
+
16
23
// No error, not a range.
17
24
let y = NotARange ;
18
25
y. step_by ( 0 ) ;
@@ -21,4 +28,7 @@ fn main() {
21
28
let v2 = vec ! [ 4 , 5 ] ;
22
29
let _x = v1. iter ( ) . zip ( 0 ..v1. len ( ) ) ;
23
30
let _y = v1. iter ( ) . zip ( 0 ..v2. len ( ) ) ; // No error
31
+
32
+ // check const eval
33
+ let _ = v1. iter ( ) . step_by ( 2 /3 ) ;
24
34
}
Original file line number Diff line number Diff line change
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
+
1
27
error: It is more idiomatic to use v1.iter().enumerate()
2
- --> range.rs:22 :14
28
+ --> range.rs:29 :14
3
29
|
4
- 22 | let _x = v1.iter().zip(0..v1.len());
30
+ 29 | let _x = v1.iter().zip(0..v1.len());
5
31
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
6
32
|
7
33
= note: `-D range-zip-with-len` implied by `-D warnings`
8
34
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
10
42
11
43
12
44
To learn more, run the command again with --verbose.
You can’t perform that action at this time.
0 commit comments