aboutsummaryrefslogtreecommitdiff
path: root/src/test/run-pass/foreach-nested-2.rs
blob: 33a376d529e6157ccf3eda5a77c43cf834a494f1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// -*- rust -*-

iter two() -> int {
    put 0;
    put 1;
}

iter range(int start, int stop) -> int {
    let int i = start;
    while (i < stop) {
        put i;
        i += 1;
    }
}

fn main() {
    let vec[mutable int] a =
      vec(mutable -1, -1, -1, -1, -1, -1, -1, -1);
    let int p = 0;

    for each (int i in two()) {
        for each (int j in range(0, 2)) {
            let int tmp = 10 * i + j;
            for each (int k in range(0, 2)) {
                a.(p) = 10 * tmp + k;
                p += 1;
            }
        }
    }

    assert (a.(0) == 0);
    assert (a.(1) == 1);
    assert (a.(2) == 10);
    assert (a.(3) == 11);
    assert (a.(4) == 100);
    assert (a.(5) == 101);
    assert (a.(6) == 110);
    assert (a.(7) == 111);
}