]> git.lizzy.rs Git - rust.git/blob - tests/ui/range.rs
Auto merge of #4478 - tsurai:master, r=flip1995
[rust.git] / tests / ui / range.rs
1 struct NotARange;
2 impl NotARange {
3     fn step_by(&self, _: u32) {}
4 }
5
6 #[warn(clippy::iterator_step_by_zero, clippy::range_zip_with_len)]
7 fn main() {
8     let _ = (0..1).step_by(0);
9     // No warning for non-zero step
10     let _ = (0..1).step_by(1);
11
12     let _ = (1..).step_by(0);
13     let _ = (1..=2).step_by(0);
14
15     let x = 0..1;
16     let _ = x.step_by(0);
17
18     // No error, not a range.
19     let y = NotARange;
20     y.step_by(0);
21
22     let v1 = vec![1, 2, 3];
23     let v2 = vec![4, 5];
24     let _x = v1.iter().zip(0..v1.len());
25     let _y = v1.iter().zip(0..v2.len()); // No error
26
27     // check const eval
28     let _ = v1.iter().step_by(2 / 3);
29 }
30
31 #[allow(unused)]
32 fn no_panic_with_fake_range_types() {
33     struct Range {
34         foo: i32,
35     }
36
37     let _ = Range { foo: 0 };
38 }