]> git.lizzy.rs Git - rust.git/blob - tests/ui/range.rs
Merge pull request #1919 from rust-lang-nursery/ui
[rust.git] / tests / ui / range.rs
1 #![feature(iterator_step_by)]
2 #![feature(inclusive_range_syntax)]
3 #![feature(plugin)]
4 #![plugin(clippy)]
5
6 struct NotARange;
7 impl NotARange {
8     fn step_by(&self, _: u32) {}
9 }
10
11 #[warn(iterator_step_by_zero, range_zip_with_len)]
12 fn main() {
13     let _ = (0..1).step_by(0);
14     // No warning for non-zero step
15     let _ = (0..1).step_by(1);
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
23     // No error, not a range.
24     let y = NotARange;
25     y.step_by(0);
26
27     let v1 = vec![1,2,3];
28     let v2 = vec![4,5];
29     let _x = v1.iter().zip(0..v1.len());
30     let _y = v1.iter().zip(0..v2.len()); // No error
31
32     // check const eval
33     let _ = v1.iter().step_by(2/3);
34 }