rust/src/test/run-pass/foreach-nested-2.rs

29 lines
682 B
Rust
Raw Normal View History

// -*- 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; }
}
2011-04-19 15:35:49 -05:00
fn main() {
let vec[mutable int] a = [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);
}