]> git.lizzy.rs Git - rust.git/blob - tests/ui/needless_range_loop.rs
Merge pull request #3265 from mikerite/fix-export
[rust.git] / tests / ui / needless_range_loop.rs
1 // Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution.
3 //
4 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
5 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
6 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
7 // option. This file may not be copied, modified, or distributed
8 // except according to those terms.
9
10
11 fn calc_idx(i: usize) -> usize {
12     (i + i + 20) % 4
13 }
14
15 fn main() {
16     let ns = [2, 3, 5, 7];
17
18     for i in 3..10 {
19         println!("{}", ns[i]);
20     }
21
22     for i in 3..10 {
23         println!("{}", ns[i % 4]);
24     }
25
26     for i in 3..10 {
27         println!("{}", ns[i % ns.len()]);
28     }
29
30     for i in 3..10 {
31         println!("{}", ns[calc_idx(i)]);
32     }
33
34     for i in 3..10 {
35         println!("{}", ns[calc_idx(i) % 4]);
36     }
37
38     let mut ms = vec![1, 2, 3, 4, 5, 6];
39     for i in 0..ms.len() {
40         ms[i] *= 2;
41     }
42     assert_eq!(ms, vec![2, 4, 6, 8, 10, 12]);
43
44     let mut ms = vec![1, 2, 3, 4, 5, 6];
45     for i in 0..ms.len() {
46         let x = &mut ms[i];
47         *x *= 2;
48     }
49     assert_eq!(ms, vec![2, 4, 6, 8, 10, 12]);
50
51     let g = vec![1, 2, 3, 4, 5, 6];
52     let glen = g.len();
53     for i in 0..glen {
54         let x: u32 = g[i+1..].iter().sum();
55         println!("{}", g[i] + x);
56     }
57     assert_eq!(g, vec![20, 18, 15, 11, 6, 0]);
58
59     let mut g = vec![1, 2, 3, 4, 5, 6];
60     let glen = g.len();
61     for i in 0..glen {
62         g[i] = g[i+1..].iter().sum();
63     }
64     assert_eq!(g, vec![20, 18, 15, 11, 6, 0]);
65 }