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