migrate many for loops to foreach

This commit is contained in:
Daniel Micay 2013-08-01 03:16:42 -04:00
parent 5f59c46e0f
commit 1fc4db2d08
255 changed files with 1292 additions and 1294 deletions

View file

@ -28,7 +28,7 @@ pub fn alist_get<A:Clone + 'static,
k: A)
-> B {
let eq_fn = lst.eq_fn;
for lst.data.iter().advance |entry| {
foreach entry in lst.data.iter() {
if eq_fn(entry.key.clone(), k.clone()) {
return entry.value.clone();
}

View file

@ -87,7 +87,7 @@ fn make_graph(N: uint, edges: ~[(node_id, node_id)]) -> graph {
HashSet::new()
};
for edges.iter().advance |e| {
foreach e in edges.iter() {
match *e {
(i, j) => {
graph[i].insert(j);
@ -98,7 +98,7 @@ fn make_graph(N: uint, edges: ~[(node_id, node_id)]) -> graph {
do graph.consume_iter().transform |v| {
let mut vec = ~[];
for v.consume().advance |i| {
foreach i in v.consume() {
vec.push(i);
}
vec
@ -119,7 +119,7 @@ fn gen_search_keys(graph: &[~[node_id]], n: uint) -> ~[node_id] {
}
}
let mut vec = ~[];
for keys.consume().advance |i| {
foreach i in keys.consume() {
vec.push(i);
}
return vec;
@ -435,7 +435,7 @@ fn main() {
let stop = time::precise_time_s();
let mut total_edges = 0;
for graph.iter().advance |edges| { total_edges += edges.len(); }
foreach edges in graph.iter() { total_edges += edges.len(); }
io::stdout().write_line(fmt!("Generated graph with %? edges in %? seconds.",
total_edges / 2,

View file

@ -80,7 +80,7 @@ fn run(args: &[~str]) {
server(&from_parent, &to_parent);
}
for worker_results.iter().advance |r| {
foreach r in worker_results.iter() {
r.recv();
}

View file

@ -76,7 +76,7 @@ fn run(args: &[~str]) {
server(&from_parent, &to_parent);
}
for worker_results.iter().advance |r| {
foreach r in worker_results.iter() {
r.recv();
}

View file

@ -108,7 +108,7 @@ fn main() {
thread_ring(0, msg_per_task, num_chan.take(), num_port);
// synchronize
for futures.mut_iter().advance |f| {
foreach f in futures.mut_iter() {
f.get()
}

View file

@ -94,7 +94,7 @@ fn main() {
thread_ring(0, msg_per_task, num_chan.take(), num_port);
// synchronize
for futures.mut_iter().advance |f| {
foreach f in futures.mut_iter() {
let _ = f.get();
}

View file

@ -104,7 +104,7 @@ fn main() {
thread_ring(0, msg_per_task, num_chan.take(), num_port);
// synchronize
for futures.mut_iter().advance |f| {
foreach f in futures.mut_iter() {
let _ = f.get();
}

View file

@ -22,8 +22,8 @@ use std::uint;
fn print_complements() {
let all = [Blue, Red, Yellow];
for all.iter().advance |aa| {
for all.iter().advance |bb| {
foreach aa in all.iter() {
foreach bb in all.iter() {
println(show_color(*aa) + " + " + show_color(*bb) +
" -> " + show_color(transform(*aa, *bb)));
}
@ -47,7 +47,7 @@ fn show_color(cc: color) -> ~str {
fn show_color_list(set: ~[color]) -> ~str {
let mut out = ~"";
for set.iter().advance |col| {
foreach col in set.iter() {
out.push_char(' ');
out.push_str(show_color(*col));
}
@ -180,13 +180,13 @@ fn rendezvous(nn: uint, set: ~[color]) {
}
// tell each creature to stop
for to_creature.iter().advance |to_one| {
foreach to_one in to_creature.iter() {
to_one.send(None);
}
// save each creature's meeting stats
let mut report = ~[];
for to_creature.iter().advance |_to_one| {
foreach _to_one in to_creature.iter() {
report.push(from_creatures_log.recv());
}
@ -194,7 +194,7 @@ fn rendezvous(nn: uint, set: ~[color]) {
io::println(show_color_list(set));
// print each creature's stats
for report.iter().advance |rep| {
foreach rep in report.iter() {
io::println(*rep);
}

View file

@ -29,7 +29,7 @@ fn fannkuch_redux(n: i32) -> i32 {
r -= 1;
}
for perm.mut_iter().zip(perm1.iter()).advance |(perm_i, perm1_i)| {
foreach (perm_i, perm1_i) in perm.mut_iter().zip(perm1.iter()) {
*perm_i = *perm1_i;
}

View file

@ -58,7 +58,7 @@ static HOMO_SAPIENS: [AminoAcid, ..4] = [
fn sum_and_scale(a: &'static [AminoAcid]) -> ~[AminoAcid] {
let mut result = ~[];
let mut p = 0f32;
for a.iter().advance |a_i| {
foreach a_i in a.iter() {
let mut a_i = *a_i;
p += a_i.p;
a_i.p = p * LOOKUP_SCALE;
@ -134,7 +134,7 @@ impl RandomFasta {
fn make_lookup(a: &[AminoAcid]) -> [AminoAcid, ..LOOKUP_SIZE] {
let mut lookup = [ NULL_AMINO_ACID, ..LOOKUP_SIZE ];
let mut j = 0;
for lookup.mut_iter().enumerate().advance |(i, slot)| {
foreach (i, slot) in lookup.mut_iter().enumerate() {
while a[j].p < (i as f32) {
j += 1;
}
@ -150,7 +150,7 @@ impl RandomFasta {
fn nextc(&mut self) -> u8 {
let r = self.rng(1.0);
for self.lookup.iter().advance |a| {
foreach a in self.lookup.iter() {
if a.p >= r {
return a.c;
}

View file

@ -46,7 +46,7 @@ struct AminoAcids {
fn make_cumulative(aa: ~[AminoAcids]) -> ~[AminoAcids] {
let mut cp: u32 = 0u32;
let mut ans: ~[AminoAcids] = ~[];
for aa.iter().advance |a| {
foreach a in aa.iter() {
cp += a.prob;
ans.push(AminoAcids {ch: a.ch, prob: cp});
}

View file

@ -62,7 +62,7 @@ fn sort_and_fmt(mm: &HashMap<~[u8], uint>, total: uint) -> ~str {
let mut pairs = ~[];
// map -> [(k,%)]
for mm.iter().advance |(key, &val)| {
foreach (key, &val) in mm.iter() {
pairs.push(((*key).clone(), pct(val, total)));
}
@ -70,7 +70,7 @@ fn sort_and_fmt(mm: &HashMap<~[u8], uint>, total: uint) -> ~str {
let mut buffer = ~"";
for pairs_sorted.iter().advance |kv| {
foreach kv in pairs_sorted.iter() {
let (k,v) = (*kv).clone();
unsafe {
let b = str::raw::from_bytes(k);
@ -215,7 +215,7 @@ fn main() {
(_, true) => {
let line_bytes = line.as_bytes();
for sizes.iter().enumerate().advance |(ii, _sz)| {
foreach (ii, _sz) in sizes.iter().enumerate() {
let lb = line_bytes.to_owned();
to_child[ii].send(lb);
}
@ -227,12 +227,12 @@ fn main() {
}
// finish...
for sizes.iter().enumerate().advance |(ii, _sz)| {
foreach (ii, _sz) in sizes.iter().enumerate() {
to_child[ii].send(~[]);
}
// now fetch and print result messages
for sizes.iter().enumerate().advance |(ii, _sz)| {
foreach (ii, _sz) in sizes.iter().enumerate() {
io::println(from_child[ii].recv());
}
}

View file

@ -102,7 +102,7 @@ fn advance(bodies: &mut [Planet, ..N_BODIES], dt: f64, steps: i32) {
}
}
for bodies.mut_iter().advance |a| {
foreach a in bodies.mut_iter() {
a.x[0] += dt * a.v[0];
a.x[1] += dt * a.v[1];
a.x[2] += dt * a.v[2];

View file

@ -89,7 +89,7 @@ fn stress(num_tasks: int) {
stress_task(i);
}
}
for results.iter().advance |r| {
foreach r in results.iter() {
r.recv();
}
}

View file

@ -19,16 +19,16 @@ fn A(i: i32, j: i32) -> i32 {
fn dot(v: &[f64], u: &[f64]) -> f64 {
let mut sum = 0.0;
for v.iter().enumerate().advance |(i, &v_i)| {
foreach (i, &v_i) in v.iter().enumerate() {
sum += v_i * u[i];
}
sum
}
fn mult_Av(v: &mut [f64], out: &mut [f64]) {
for out.mut_iter().enumerate().advance |(i, out_i)| {
foreach (i, out_i) in out.mut_iter().enumerate() {
let mut sum = 0.0;
for v.mut_iter().enumerate().advance |(j, &v_j)| {
foreach (j, &v_j) in v.mut_iter().enumerate() {
sum += v_j / (A(i as i32, j as i32) as f64);
}
*out_i = sum;
@ -36,9 +36,9 @@ fn mult_Av(v: &mut [f64], out: &mut [f64]) {
}
fn mult_Atv(v: &mut [f64], out: &mut [f64]) {
for out.mut_iter().enumerate().advance |(i, out_i)| {
foreach (i, out_i) in out.mut_iter().enumerate() {
let mut sum = 0.0;
for v.mut_iter().enumerate().advance |(j, &v_j)| {
foreach (j, &v_j) in v.mut_iter().enumerate() {
sum += v_j / (A(j as i32, i as i32) as f64);
}
*out_i = sum;

View file

@ -16,7 +16,7 @@ struct Foo {
impl Foo {
pub fn foo(&mut self, fun: &fn(&int)) {
for self.n.iter().advance |f| {
foreach f in self.n.iter() {
fun(f);
}
}

View file

@ -10,7 +10,7 @@
fn main() {
let v = @mut [ 1, 2, 3 ];
for v.iter().advance |_x| {
foreach _x in v.iter() {
v[1] = 4; //~ ERROR cannot assign
}
}

View file

@ -15,7 +15,7 @@ trait vec_monad<A> {
impl<A> vec_monad<A> for ~[A] {
fn bind<B>(&self, f: &fn(A) -> ~[B]) {
let mut r = fail!();
for self.iter().advance |elt| { r = r + f(*elt); }
foreach elt in self.iter() { r = r + f(*elt); }
//~^ WARNING unreachable expression
//~^^ ERROR the type of this value must be known
}

View file

@ -14,7 +14,7 @@
fn fail_len(v: ~[int]) -> uint {
let mut i = 3;
fail!();
for v.iter().advance |x| { i += 1u; }
foreach x in v.iter() { i += 1u; }
//~^ ERROR: unreachable statement
return i;
}

View file

@ -37,7 +37,7 @@ fn main() {
('c', 'd'),
('e', 'f')];
for v.iter().advance |&(x,y)| {} // should be OK
foreach &(x,y) in v.iter() {} // should be OK
// Make sure none of the errors above were fatal
let x: char = true; //~ ERROR expected `char` but found `bool`

View file

@ -11,7 +11,7 @@
fn main() {
let mut xs = ~[1, 2, 3, 4];
for xs.mut_iter().advance |x| {
foreach x in xs.mut_iter() {
xs.push(1) //~ ERROR cannot borrow `xs` as mutable
}
}

View file

@ -108,7 +108,7 @@ fn main() {
'\xA0', '\u1680', '\u180E', '\u2000', '\u2001', '\u2002', '\u2003',
'\u2004', '\u2005', '\u2006', '\u2007', '\u2008', '\u2009', '\u200A',
'\u2028', '\u2029', '\u202F', '\u205F', '\u3000'];
for chars.iter().advance |c| {
foreach c in chars.iter() {
let ws = c.is_whitespace();
println(fmt!("%? %?" , c , ws));
}

View file

@ -102,7 +102,7 @@ fn main() {
'\xA0', '\u1680', '\u180E', '\u2000', '\u2001', '\u2002', '\u2003',
'\u2004', '\u2005', '\u2006', '\u2007', '\u2008', '\u2009', '\u200A',
'\u2028', '\u2029', '\u202F', '\u205F', '\u3000'];
for chars.iter().advance |c| {
foreach c in chars.iter() {
let ws = c.is_whitespace();
println(fmt!("%? %?", c , ws));
}

View file

@ -12,7 +12,7 @@
fn f(v: &[int]) {
let mut n = 0;
for v.iter().advance |e| {
foreach e in v.iter() {
n = *e; // This comment once triggered pretty printer bug
}
}

View file

@ -11,7 +11,7 @@
pub fn main() {
let mut sum = 0;
let xs = ~[1, 2, 3, 4, 5];
for xs.iter().advance |x| {
foreach x in xs.iter() {
sum += *x;
}
assert_eq!(sum, 15);

View file

@ -15,7 +15,7 @@ pub fn main() {
let v = ~[-1f, 0f, 1f, 2f, 3f];
// Statement form does not require parentheses:
for v.iter().advance |i| {
foreach i in v.iter() {
info!("%?", *i);
}

View file

@ -10,7 +10,7 @@
// xfail-fast
fn iter_vec<T>(v: ~[T], f: &fn(&T)) { for v.iter().advance |x| { f(x); } }
fn iter_vec<T>(v: ~[T], f: &fn(&T)) { foreach x in v.iter() { f(x); } }
pub fn main() {
let v = ~[1, 2, 3, 4, 5, 6, 7];

View file

@ -10,7 +10,7 @@
// xfail-fast
fn iter_vec<T>(v: ~[T], f: &fn(&T)) { for v.iter().advance |x| { f(x); } }
fn iter_vec<T>(v: ~[T], f: &fn(&T)) { foreach x in v.iter() { f(x); } }
pub fn main() {
let v = ~[1, 2, 3, 4, 5];

View file

@ -10,7 +10,7 @@
fn sum_slice(x: &[int]) -> int {
let mut sum = 0;
for x.iter().advance |i| { sum += *i; }
foreach i in x.iter() { sum += *i; }
return sum;
}

View file

@ -10,7 +10,7 @@
fn want_slice(v: &[int]) -> int {
let mut sum = 0;
for v.iter().advance |i| { sum += *i; }
foreach i in v.iter() { sum += *i; }
sum
}

View file

@ -4,7 +4,7 @@ struct Wizard {
impl Wizard {
pub fn cast(&mut self) {
for self.spells.iter().advance |&spell| {
foreach &spell in self.spells.iter() {
println(spell);
}
}

View file

@ -17,7 +17,7 @@ pub fn main() {
loop { i += 1; if i == 20 { break; } }
assert_eq!(i, 20);
let xs = [1, 2, 3, 4, 5, 6];
for xs.iter().advance |x| {
foreach x in xs.iter() {
if *x == 3 { break; } assert!((*x <= 3));
}
i = 0;
@ -28,7 +28,7 @@ pub fn main() {
if i >= 10 { break; }
}
let ys = ~[1, 2, 3, 4, 5, 6];
for ys.iter().advance |x| {
foreach x in ys.iter() {
if *x % 2 == 0 { loop; }
assert!((*x % 2 != 0));
}

View file

@ -1,6 +1,6 @@
fn sum(x: &[int]) -> int {
let mut sum = 0;
for x.iter().advance |y| { sum += *y; }
foreach y in x.iter() { sum += *y; }
return sum;
}

View file

@ -24,6 +24,6 @@ struct S<'self>(&'self fn());
static closures: &'static [S<'static>] = &[S(f), S(f)];
pub fn main() {
for bare_fns.iter().advance |&bare_fn| { bare_fn() }
for closures.iter().advance |&closure| { (*closure)() }
foreach &bare_fn in bare_fns.iter() { bare_fn() }
foreach &closure in closures.iter() { (*closure)() }
}

View file

@ -25,8 +25,8 @@ pub fn main() {
// in order for both Ord and TotalOrd
let es = [e0, e11, e12, e21, e22];
for es.iter().enumerate().advance |(i, e1)| {
for es.iter().enumerate().advance |(j, e2)| {
foreach (i, e1) in es.iter().enumerate() {
foreach (j, e2) in es.iter().enumerate() {
let ord = i.cmp(&j);
let eq = i == j;

View file

@ -21,8 +21,8 @@ pub fn main() {
// in order for both Ord and TotalOrd
let ss = [s1, s2];
for ss.iter().enumerate().advance |(i, s1)| {
for ss.iter().enumerate().advance |(j, s2)| {
foreach (i, s1) in ss.iter().enumerate() {
foreach (j, s2) in ss.iter().enumerate() {
let ord = i.cmp(&j);
let eq = i == j;

View file

@ -19,8 +19,8 @@ pub fn main() {
// in order for both Ord and TotalOrd
let tss = [ts1, ts2];
for tss.iter().enumerate().advance |(i, ts1)| {
for tss.iter().enumerate().advance |(j, ts2)| {
foreach (i, ts1) in tss.iter().enumerate() {
foreach (j, ts2) in tss.iter().enumerate() {
let ord = i.cmp(&j);
let eq = i == j;

View file

@ -16,10 +16,10 @@ struct Box {
impl Box {
pub fn set_many(&mut self, xs: &[uint]) {
for xs.iter().advance |x| { self.x = *x; }
foreach x in xs.iter() { self.x = *x; }
}
pub fn set_many2(@mut self, xs: &[uint]) {
for xs.iter().advance |x| { self.x = *x; }
foreach x in xs.iter() { self.x = *x; }
}
}

View file

@ -10,7 +10,7 @@
pub fn main() {
let v : &[(int,int)] = &[ (1, 2), (3, 4), (5, 6) ];
for v.iter().advance |&(x, y)| {
foreach &(x, y) in v.iter() {
println(y.to_str());
println(x.to_str());
}

View file

@ -8,4 +8,4 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
pub fn main() { let x: ~[int] = ~[]; for x.iter().advance |_| { fail!("moop"); } }
pub fn main() { let x: ~[int] = ~[]; foreach _ in x.iter() { fail!("moop"); } }

View file

@ -15,7 +15,7 @@ trait vec_utils<T> {
impl<T> vec_utils<T> for ~[T] {
fn map_<U>(x: &~[T], f: &fn(&T) -> U) -> ~[U] {
let mut r = ~[];
for x.iter().advance |elt| {
foreach elt in x.iter() {
r.push(f(elt));
}
r

View file

@ -31,7 +31,7 @@ mod map_reduce {
enum ctrl_proto { find_reducer(~[u8], Chan<int>), mapper_done, }
fn start_mappers(ctrl: SharedChan<ctrl_proto>, inputs: ~[~str]) {
for inputs.iter().advance |i| {
foreach i in inputs.iter() {
let ctrl = ctrl.clone();
let i = i.clone();
task::spawn(|| map_task(ctrl.clone(), i.clone()) );

View file

@ -67,13 +67,13 @@ fn read_board_grid<rdr:'static + io::Reader>(input: rdr) -> ~[~[square]] {
let mut grid = ~[];
for input.each_line |line| {
let mut row = ~[];
for line.iter().advance |c| {
foreach c in line.iter() {
row.push(square_from_char(c))
}
grid.push(row)
}
let width = grid[0].len();
for grid.iter().advance |row| { assert!(row.len() == width) }
foreach row in grid.iter() { assert!(row.len() == width) }
grid
}

View file

@ -14,7 +14,7 @@ struct trie_node {
}
fn print_str_vector(vector: ~[~str]) {
for vector.iter().advance |string| {
foreach string in vector.iter() {
println(*string);
}
}

View file

@ -11,7 +11,7 @@
trait Canvas {
fn add_point(&self, point: &int);
fn add_points(&self, shapes: &[int]) {
for shapes.iter().advance |pt| {
foreach pt in shapes.iter() {
self.add_point(pt)
}
}

View file

@ -120,7 +120,7 @@ trait Canvas {
// Unlike interfaces traits support default implementations.
// Got an ICE as soon as I added this method.
fn add_points(&mut self, shapes: &[Point]) {
for shapes.iter().advance |pt| {self.add_point(*pt)};
foreach pt in shapes.iter() {self.add_point(*pt)};
}
}

View file

@ -102,7 +102,7 @@ priv fn cmd_to_str(cmd: ~[~str]) -> ~str {
let mut res = ~"*";
res.push_str(cmd.len().to_str());
res.push_str("\r\n");
for cmd.iter().advance |s| {
foreach s in cmd.iter() {
res.push_str([~"$", s.len().to_str(), ~"\r\n",
(*s).clone(), ~"\r\n"].concat() );
}

View file

@ -12,7 +12,7 @@ use std::os;
pub fn main() {
let x = os::args();
for x.iter().advance |arg| {
foreach arg in x.iter() {
match arg.clone() {
s => { }
}

View file

@ -11,12 +11,12 @@
pub fn main() {
let x = ~[1, 2, 3];
let mut y = 0;
for x.iter().advance |i| { info!(*i); y += *i; }
foreach i in x.iter() { info!(*i); y += *i; }
info!(y);
assert_eq!(y, 6);
let s = ~"hello there";
let mut i: int = 0;
for s.byte_iter().advance |c| {
foreach c in s.byte_iter() {
if i == 0 { assert!((c == 'h' as u8)); }
if i == 1 { assert!((c == 'e' as u8)); }
if i == 2 { assert!((c == 'l' as u8)); }

View file

@ -11,6 +11,6 @@
pub fn main() {
let x = ~[10, 20, 30];
let mut sum = 0;
for x.iter().advance |x| { sum += *x; }
foreach x in x.iter() { sum += *x; }
assert_eq!(sum, 60);
}

View file

@ -19,7 +19,7 @@ trait vec_monad<A> {
impl<A> vec_monad<A> for ~[A] {
fn bind<B>(&self, f: &fn(&A) -> ~[B]) -> ~[B] {
let mut r = ~[];
for self.iter().advance |elt| {
foreach elt in self.iter() {
r.push_all_move(f(elt));
}
r

View file

@ -65,7 +65,7 @@ pub fn main() {
calllink10
];
let mut rng = rand::rng();
for fns.iter().advance |f| {
foreach f in fns.iter() {
let f = *f;
let sz = rng.next() % 256u32 + 256u32;
let frame_backoff = rng.next() % 10u32 + 1u32;

View file

@ -16,8 +16,8 @@ fn test1() {
fn test2() {
let mut ints = [0, ..32];
for ints.mut_iter().advance |i| { *i += 22; }
for ints.iter().advance |i| { assert!(*i == 22); }
foreach i in ints.mut_iter() { *i += 22; }
foreach i in ints.iter() { assert!(*i == 22); }
}
pub fn main() {

View file

@ -31,7 +31,7 @@ impl<K,V> AssociationList<K,V> {
impl<K:Eq,V:Clone> Index<K,V> for AssociationList<K,V> {
fn index(&self, index: &K) -> V {
for self.pairs.iter().advance |pair| {
foreach pair in self.pairs.iter() {
if pair.key == *index {
return pair.value.clone();
}

View file

@ -27,7 +27,7 @@ fn main() {
assert_eq!(foos[i], Foo { bar: 1, baz: 2});
}
for foos.iter().advance |&foo| {
foreach &foo in foos.iter() {
assert_eq!(foo, Foo { bar: 1, baz: 2 });
}
}

View file

@ -666,7 +666,7 @@ pub fn main() {
visit_tydesc(td, v);
let r = u.vals.clone();
for r.iter().advance |s| {
foreach s in r.iter() {
printfln!("val: %s", *s);
}
error!("%?", u.vals.clone());

View file

@ -170,7 +170,7 @@ pub fn main() {
visit_ty::<i16>(vv);
visit_ty::<~[int]>(vv);
for v.types.iter().advance |s| {
foreach s in v.types.iter() {
printfln!("type: %s", (*s).clone());
}
assert_eq!((*v.types).clone(), ~[~"bool", ~"int", ~"i8", ~"i16", ~"[", ~"int", ~"]"]);

View file

@ -16,7 +16,7 @@ fn foo(c: ~[int]) {
match none::<int> {
some::<int>(_) => {
for c.iter().advance |i| {
foreach i in c.iter() {
info!(a);
let a = 17;
b.push(a);

View file

@ -48,10 +48,10 @@ trait vec_utils<T> {
impl<T> vec_utils<T> for ~[T] {
fn length_(&self) -> uint { self.len() }
fn iter_(&self, f: &fn(&T)) { for self.iter().advance |x| { f(x); } }
fn iter_(&self, f: &fn(&T)) { foreach x in self.iter() { f(x); } }
fn map_<U>(&self, f: &fn(&T) -> U) -> ~[U] {
let mut r = ~[];
for self.iter().advance |elt| {
foreach elt in self.iter() {
r.push(f(elt));
}
r

View file

@ -54,7 +54,7 @@ fn test00() {
// Read from spawned tasks...
let mut sum = 0;
for results.iter().advance |r| {
foreach r in results.iter() {
i = 0;
while i < number_of_messages {
let value = po.recv();
@ -64,7 +64,7 @@ fn test00() {
}
// Join spawned tasks...
for results.iter().advance |r| { r.recv(); }
foreach r in results.iter() { r.recv(); }
info!("Completed: Final number is: ");
error!(sum);

View file

@ -84,20 +84,20 @@ fn main() {
fn check_legs(arc: arc::Arc<~[~Pet:Freeze+Send]>) {
let mut legs = 0;
for arc.get().iter().advance |pet| {
foreach pet in arc.get().iter() {
legs += pet.num_legs();
}
assert!(legs == 12);
}
fn check_names(arc: arc::Arc<~[~Pet:Freeze+Send]>) {
for arc.get().iter().advance |pet| {
foreach pet in arc.get().iter() {
do pet.name |name| {
assert!(name[0] == 'a' as u8 && name[1] == 'l' as u8);
}
}
}
fn check_pedigree(arc: arc::Arc<~[~Pet:Freeze+Send]>) {
for arc.get().iter().advance |pet| {
foreach pet in arc.get().iter() {
assert!(pet.of_good_pedigree());
}
}

View file

@ -26,7 +26,7 @@ fn main() {
let mut it = Unfoldr::new(0, count);
let mut i = 0;
for it.advance |counted| {
foreach counted in it {
assert_eq!(counted, i);
i += 1;
}

View file

@ -41,7 +41,7 @@ pub fn main() {
fn check_str_eq(a: ~str, b: ~str) {
let mut i: int = 0;
for a.byte_iter().advance |ab| {
foreach ab in a.byte_iter() {
info!(i);
info!(ab);
let bb: u8 = b[i];