diff --git a/doc/po/rust.md.pot b/doc/po/rust.md.pot index 516ca32104a..ce68fb4179d 100644 --- a/doc/po/rust.md.pot +++ b/doc/po/rust.md.pot @@ -1792,11 +1792,11 @@ msgstr "" msgid "" "~~~~ {.xfail-test}\n" "fn iter(seq: &[T], f: &fn(T)) {\n" -" for seq.iter().advance |elt| { f(elt); }\n" +" foreach elt in seq.iter() { f(elt); }\n" "}\n" "fn map(seq: &[T], f: &fn(T) -> U) -> ~[U] {\n" " let mut acc = ~[];\n" -" for seq.iter().advance |elt| { acc.push(f(elt)); }\n" +" foreach elt in seq.iter() { acc.push(f(elt)); }\n" " acc\n" "}\n" "~~~~\n" @@ -4570,7 +4570,7 @@ msgstr "" #: doc/rust.md:2405 #, no-wrap msgid "" -"for v.iter().advance |e| {\n" +"foreach e in v.iter() {\n" " bar(*e);\n" "}\n" "~~~~\n" diff --git a/doc/po/tutorial-container.md.pot b/doc/po/tutorial-container.md.pot index 3a4e86f8c82..841e6a23393 100644 --- a/doc/po/tutorial-container.md.pot +++ b/doc/po/tutorial-container.md.pot @@ -376,7 +376,7 @@ msgstr "" #, no-wrap msgid "" "// print out all the elements in the vector\n" -"for xs.iter().advance |x| {\n" +"foreach x in xs.iter() {\n" " println(x.to_str())\n" "}\n" msgstr "" @@ -386,7 +386,7 @@ msgstr "" #, no-wrap msgid "" "// print out all but the first 3 elements in the vector\n" -"for xs.iter().skip(3).advance |x| {\n" +"foreach x in xs.iter().skip(3) {\n" " println(x.to_str())\n" "}\n" "~~~\n" @@ -418,7 +418,7 @@ msgstr "" #, no-wrap msgid "" "// print out the pairs of elements up to (&3, &\"baz\")\n" -"for it.advance |(x, y)| {\n" +"foreach (x, y) in it {\n" " println(fmt!(\"%d %s\", *x, *y));\n" msgstr "" @@ -487,7 +487,7 @@ msgid "" " pub fn from_iterator(iterator: &mut T) -> ~[A] {\n" " let (lower, _) = iterator.size_hint();\n" " let mut xs = with_capacity(lower);\n" -" for iterator.advance |x| {\n" +" foreach x in iterator {\n" " xs.push(x);\n" " }\n" " xs\n" @@ -587,7 +587,7 @@ msgstr "" #, no-wrap msgid "" "// prints `5`, `4` and `3`\n" -"for it.invert().advance |&x| {\n" +"foreach &x in it.invert() {\n" " println(fmt!(\"%?\", x))\n" "}\n" "~~~\n" diff --git a/doc/po/tutorial-tasks.md.pot b/doc/po/tutorial-tasks.md.pot index 1315dbf65b2..fb7d60716bf 100644 --- a/doc/po/tutorial-tasks.md.pot +++ b/doc/po/tutorial-tasks.md.pot @@ -587,7 +587,7 @@ msgstr "" #, no-wrap msgid "" " let mut final_res = 0f64;\n" -" for futures.mut_iter().advance |ft| {\n" +" foreach ft in futures.mut_iter() {\n" " final_res += ft.get();\n" " }\n" " println(fmt!(\"^2/6 is not far from : %?\", final_res));\n" diff --git a/doc/po/tutorial.md.pot b/doc/po/tutorial.md.pot index 415d5052a06..2b24d688a96 100644 --- a/doc/po/tutorial.md.pot +++ b/doc/po/tutorial.md.pot @@ -2501,7 +2501,7 @@ msgstr "" msgid "" "// Iterate over a vector, obtaining a pointer to each element\n" "// (`for` is explained in the next section)\n" -"for crayons.iter().advance |crayon| {\n" +"foreach crayon in crayons.iter() {\n" " let delicious_crayon_wax = unwrap_crayon(*crayon);\n" " eat_crayon_wax(delicious_crayon_wax);\n" "}\n" @@ -3101,7 +3101,7 @@ msgid "" "~~~~\n" "fn map(vector: &[T], function: &fn(v: &T) -> U) -> ~[U] {\n" " let mut accumulator = ~[];\n" -" for vector.iter().advance |element| {\n" +" foreach element in vector.iter() {\n" " accumulator.push(function(element));\n" " }\n" " return accumulator;\n" @@ -3570,7 +3570,7 @@ msgid "" "~~~~\n" "# trait Printable { fn print(&self); }\n" "fn print_all(printable_things: ~[T]) {\n" -" for printable_things.iter().advance |thing| {\n" +" foreach thing in printable_things.iter() {\n" " thing.print();\n" " }\n" "}\n" @@ -3650,7 +3650,7 @@ msgstr "" #, no-wrap msgid "" "fn draw_all(shapes: ~[T]) {\n" -" for shapes.iter().advance |shape| { shape.draw(); }\n" +" foreach shape in shapes.iter() { shape.draw(); }\n" "}\n" "# let c: Circle = new_circle();\n" "# draw_all(~[c]);\n" @@ -3673,7 +3673,7 @@ msgid "" "~~~~\n" "# trait Drawable { fn draw(&self); }\n" "fn draw_all(shapes: &[@Drawable]) {\n" -" for shapes.iter().advance |shape| { shape.draw(); }\n" +" foreach shape in shapes.iter() { shape.draw(); }\n" "}\n" "~~~~\n" msgstr "" diff --git a/doc/rust.md b/doc/rust.md index f938fb79b44..51b2786746a 100644 --- a/doc/rust.md +++ b/doc/rust.md @@ -880,11 +880,11 @@ the function name. ~~~~ {.xfail-test} fn iter(seq: &[T], f: &fn(T)) { - for seq.iter().advance |elt| { f(elt); } + foreach elt in seq.iter() { f(elt); } } fn map(seq: &[T], f: &fn(T) -> U) -> ~[U] { let mut acc = ~[]; - for seq.iter().advance |elt| { acc.push(f(elt)); } + foreach elt in seq.iter() { acc.push(f(elt)); } acc } ~~~~ @@ -2378,7 +2378,7 @@ An example of a for loop over the contents of a vector: let v: &[foo] = &[a, b, c]; -for v.iter().advance |e| { +foreach e in v.iter() { bar(*e); } ~~~~ diff --git a/doc/tutorial-container.md b/doc/tutorial-container.md index 148afb4bda9..b7465ddb4df 100644 --- a/doc/tutorial-container.md +++ b/doc/tutorial-container.md @@ -164,20 +164,19 @@ dropped when they become unnecessary. ## For loops -The `for` loop syntax is currently in transition, and will switch from the old -closure-based iteration protocol to iterator objects. For now, the `advance` -adaptor is required as a compatibility shim to use iterators with for loops. +The `foreach` keyword is transitional, and is going to replace the current +obsolete `for` loop. ~~~ let xs = [2, 3, 5, 7, 11, 13, 17]; // print out all the elements in the vector -for xs.iter().advance |x| { +foreach x in xs.iter() { println(x.to_str()) } // print out all but the first 3 elements in the vector -for xs.iter().skip(3).advance |x| { +foreach x in xs.iter().skip(3) { println(x.to_str()) } ~~~ @@ -193,7 +192,7 @@ let ys = ["foo", "bar", "baz", "foobar"]; let mut it = xs.iter().zip(ys.iter()); // print out the pairs of elements up to (&3, &"baz") -for it.advance |(x, y)| { +foreach (x, y) in it { printfln!("%d %s", *x, *y); if *x == 3 { @@ -230,7 +229,7 @@ impl> FromIterator for ~[A] { pub fn from_iterator(iterator: &mut T) -> ~[A] { let (lower, _) = iterator.size_hint(); let mut xs = with_capacity(lower); - for iterator.advance |x| { + foreach x in iterator { xs.push(x); } xs @@ -301,7 +300,7 @@ printfln!("%?", it.next()); // prints `Some(&2)` printfln!("%?", it.next_back()); // prints `Some(&6)` // prints `5`, `4` and `3` -for it.invert().advance |&x| { +foreach &x in it.invert() { printfln!("%?", x) } ~~~ @@ -320,7 +319,7 @@ let mut it = xs.iter().chain_(ys.iter()).transform(|&x| x * 2); printfln!("%?", it.next()); // prints `Some(2)` // prints `16`, `14`, `12`, `10`, `8`, `6`, `4` -for it.invert().advance |x| { +foreach x in it.invert() { printfln!("%?", x); } ~~~ diff --git a/doc/tutorial-tasks.md b/doc/tutorial-tasks.md index 2b48bd63fff..3092dfff56e 100644 --- a/doc/tutorial-tasks.md +++ b/doc/tutorial-tasks.md @@ -327,7 +327,7 @@ fn main() { let mut futures = vec::from_fn(1000, |ind| do extra::future::spawn { partial_sum(ind) }); let mut final_res = 0f64; - for futures.mut_iter().advance |ft| { + foreach ft in futures.mut_iter() { final_res += ft.get(); } println(fmt!("π^2/6 is not far from : %?", final_res)); diff --git a/doc/tutorial.md b/doc/tutorial.md index b7ea5f146e4..a8ace8558b5 100644 --- a/doc/tutorial.md +++ b/doc/tutorial.md @@ -1398,7 +1398,7 @@ assert!(!crayons.is_empty()); // Iterate over a vector, obtaining a pointer to each element // (`for` is explained in the next section) -for crayons.iter().advance |crayon| { +foreach crayon in crayons.iter() { let delicious_crayon_wax = unwrap_crayon(*crayon); eat_crayon_wax(delicious_crayon_wax); } @@ -1749,7 +1749,7 @@ of `vector`: ~~~~ fn map(vector: &[T], function: &fn(v: &T) -> U) -> ~[U] { let mut accumulator = ~[]; - for vector.iter().advance |element| { + foreach element in vector.iter() { accumulator.push(function(element)); } return accumulator; @@ -2027,7 +2027,7 @@ generic types. ~~~~ # trait Printable { fn print(&self); } fn print_all(printable_things: ~[T]) { - for printable_things.iter().advance |thing| { + foreach thing in printable_things.iter() { thing.print(); } } @@ -2073,7 +2073,7 @@ However, consider this function: trait Drawable { fn draw(&self); } fn draw_all(shapes: ~[T]) { - for shapes.iter().advance |shape| { shape.draw(); } + foreach shape in shapes.iter() { shape.draw(); } } # let c: Circle = new_circle(); # draw_all(~[c]); @@ -2088,7 +2088,7 @@ an _object_. ~~~~ # trait Drawable { fn draw(&self); } fn draw_all(shapes: &[@Drawable]) { - for shapes.iter().advance |shape| { shape.draw(); } + foreach shape in shapes.iter() { shape.draw(); } } ~~~~ diff --git a/src/compiletest/compiletest.rs b/src/compiletest/compiletest.rs index 894a372ac64..4b9a48ed445 100644 --- a/src/compiletest/compiletest.rs +++ b/src/compiletest/compiletest.rs @@ -243,7 +243,7 @@ pub fn make_tests(config: &config) -> ~[test::TestDescAndFn] { config.src_base.to_str()); let mut tests = ~[]; let dirs = os::list_dir_path(&config.src_base); - for dirs.iter().advance |file| { + foreach file in dirs.iter() { let file = file.clone(); debug!("inspecting file %s", file.to_str()); if is_test(config, &file) { @@ -271,11 +271,11 @@ pub fn is_test(config: &config, testfile: &Path) -> bool { let mut valid = false; - for valid_extensions.iter().advance |ext| { + foreach ext in valid_extensions.iter() { if name.ends_with(*ext) { valid = true; } } - for invalid_prefixes.iter().advance |pre| { + foreach pre in invalid_prefixes.iter() { if name.starts_with(*pre) { valid = false; } } diff --git a/src/compiletest/procsrv.rs b/src/compiletest/procsrv.rs index ac87eabc0fd..48c467c34b6 100644 --- a/src/compiletest/procsrv.rs +++ b/src/compiletest/procsrv.rs @@ -56,7 +56,7 @@ pub fn run(lib_path: &str, err_fd: None }); - for input.iter().advance |input| { + foreach input in input.iter() { proc.input().write_str(*input); } let output = proc.finish_with_output(); diff --git a/src/compiletest/runtest.rs b/src/compiletest/runtest.rs index aa074f42974..f984473a4c7 100644 --- a/src/compiletest/runtest.rs +++ b/src/compiletest/runtest.rs @@ -283,7 +283,7 @@ fn run_debuginfo_test(config: &config, props: &TestProps, testfile: &Path) { // check if each line in props.check_lines appears in the // output (in order) let mut i = 0u; - for ProcRes.stdout.line_iter().advance |line| { + foreach line in ProcRes.stdout.line_iter() { if check_lines[i].trim() == line.trim() { i += 1u; } @@ -313,7 +313,7 @@ fn check_error_patterns(props: &TestProps, let mut next_err_idx = 0u; let mut next_err_pat = &props.error_patterns[next_err_idx]; let mut done = false; - for ProcRes.stderr.line_iter().advance |line| { + foreach line in ProcRes.stderr.line_iter() { if line.contains(*next_err_pat) { debug!("found error pattern %s", *next_err_pat); next_err_idx += 1u; @@ -333,7 +333,7 @@ fn check_error_patterns(props: &TestProps, fatal_ProcRes(fmt!("error pattern '%s' not found!", missing_patterns[0]), ProcRes); } else { - for missing_patterns.iter().advance |pattern| { + foreach pattern in missing_patterns.iter() { error(fmt!("error pattern '%s' not found!", *pattern)); } fatal_ProcRes(~"multiple error patterns not found", ProcRes); @@ -386,9 +386,9 @@ fn check_expected_errors(expected_errors: ~[errors::ExpectedError], // filename:line1:col1: line2:col2: *warning:* msg // where line1:col1: is the starting point, line2:col2: // is the ending point, and * represents ANSI color codes. - for ProcRes.stderr.line_iter().advance |line| { + foreach line in ProcRes.stderr.line_iter() { let mut was_expected = false; - for expected_errors.iter().enumerate().advance |(i, ee)| { + foreach (i, ee) in expected_errors.iter().enumerate() { if !found_flags[i] { debug!("prefix=%s ee.kind=%s ee.msg=%s line=%s", prefixes[i], ee.kind, ee.msg, line); @@ -559,7 +559,7 @@ fn compose_and_run_compiler( let extra_link_args = ~[~"-L", aux_output_dir_name(config, testfile).to_str()]; - for props.aux_builds.iter().advance |rel_ab| { + foreach rel_ab in props.aux_builds.iter() { let abs_ab = config.aux_base.push_rel(&Path(*rel_ab)); let aux_args = make_compile_args(config, props, ~[~"--lib"] + extra_link_args, @@ -786,7 +786,7 @@ fn _arm_exec_compiled_test(config: &config, props: &TestProps, runargs.push(fmt!("%s", config.adb_test_dir)); runargs.push(fmt!("%s", prog_short)); - for args.args.iter().advance |tv| { + foreach tv in args.args.iter() { runargs.push(tv.to_owned()); } @@ -803,7 +803,7 @@ fn _arm_exec_compiled_test(config: &config, props: &TestProps, Some(~"")); let mut exitcode : int = 0; - for exitcode_out.iter().advance |c| { + foreach c in exitcode_out.iter() { if !c.is_digit() { break; } exitcode = exitcode * 10 + match c { '0' .. '9' => c as int - ('0' as int), @@ -852,7 +852,7 @@ fn _arm_push_aux_shared_library(config: &config, testfile: &Path) { let tstr = aux_output_dir_name(config, testfile).to_str(); let dirs = os::list_dir_path(&Path(tstr)); - for dirs.iter().advance |file| { + foreach file in dirs.iter() { if (file.filetype() == Some(~".so")) { diff --git a/src/libextra/arc.rs b/src/libextra/arc.rs index d4bf1d480ed..9e622b78fff 100644 --- a/src/libextra/arc.rs +++ b/src/libextra/arc.rs @@ -789,7 +789,7 @@ mod tests { } // Wait for children to pass their asserts - for children.iter().advance |r| { + foreach r in children.iter() { r.recv(); } diff --git a/src/libextra/base64.rs b/src/libextra/base64.rs index 37d95d622c0..5061dbf401b 100644 --- a/src/libextra/base64.rs +++ b/src/libextra/base64.rs @@ -206,7 +206,7 @@ impl<'self> FromBase64 for &'self [u8] { let mut modulus = 0; let mut it = self.iter(); - for it.advance |&byte| { + foreach &byte in it { let ch = byte as char; let val = byte as u32; diff --git a/src/libextra/bitv.rs b/src/libextra/bitv.rs index 90824a653fa..4d2d5635eff 100644 --- a/src/libextra/bitv.rs +++ b/src/libextra/bitv.rs @@ -398,7 +398,7 @@ impl Bitv { match self.rep { Small(ref b) => b.is_true(self.nbits), _ => { - for self.iter().advance |i| { if !i { return false; } } + foreach i in self.iter() { if !i { return false; } } true } } @@ -419,7 +419,7 @@ impl Bitv { match self.rep { Small(ref b) => b.is_false(self.nbits), Big(_) => { - for self.iter().advance |i| { if i { return false; } } + foreach i in self.iter() { if i { return false; } } true } } @@ -483,7 +483,7 @@ impl Bitv { */ pub fn to_str(&self) -> ~str { let mut rs = ~""; - for self.iter().advance |i| { + foreach i in self.iter() { if i { rs.push_char('1'); } else { @@ -684,7 +684,7 @@ impl BitvSet { if self.capacity() < other.capacity() { self.bitv.storage.grow(other.capacity() / uint::bits, &0); } - for other.bitv.storage.iter().enumerate().advance |(i, &w)| { + foreach (i, &w) in other.bitv.storage.iter().enumerate() { let old = self.bitv.storage[i]; let new = f(old, w); self.bitv.storage[i] = new; @@ -883,12 +883,12 @@ impl BitvSet { let min = num::min(len1, len2); /* only one of these loops will execute and that's the point */ - for self.bitv.storage.slice(min, len1).iter().enumerate().advance |(i, &w)| { + foreach (i, &w) in self.bitv.storage.slice(min, len1).iter().enumerate() { if !f(true, (i + min) * uint::bits, w) { return false; } } - for other.bitv.storage.slice(min, len2).iter().enumerate().advance |(i, &w)| { + foreach (i, &w) in other.bitv.storage.slice(min, len2).iter().enumerate() { if !f(false, (i + min) * uint::bits, w) { return false; } @@ -1308,7 +1308,7 @@ mod tests { let bools = [true, false, true, true]; let bitv = from_bools(bools); - for bitv.iter().zip(bools.iter()).advance |(act, &ex)| { + foreach (act, &ex) in bitv.iter().zip(bools.iter()) { assert_eq!(ex, act); } } @@ -1610,7 +1610,7 @@ mod tests { let bitv = Bitv::new(uint::bits, false); do b.iter { let mut sum = 0; - for bitv.iter().advance |pres| { + foreach pres in bitv.iter() { sum += pres as uint; } } @@ -1621,7 +1621,7 @@ mod tests { let bitv = Bitv::new(BENCH_BITS, false); do b.iter { let mut sum = 0; - for bitv.iter().advance |pres| { + foreach pres in bitv.iter() { sum += pres as uint; } } @@ -1633,7 +1633,7 @@ mod tests { |idx| {idx % 3 == 0})); do b.iter { let mut sum = 0; - for bitv.iter().advance |idx| { + foreach idx in bitv.iter() { sum += idx; } } diff --git a/src/libextra/container.rs b/src/libextra/container.rs index 7b072b7cd46..0ca992fdacd 100644 --- a/src/libextra/container.rs +++ b/src/libextra/container.rs @@ -91,7 +91,7 @@ mod bench { let mut rng = rand::XorShiftRng::new(); let mut keys = vec::from_fn(n, |_| rng.gen::() % n); - for keys.iter().advance() |k| { + foreach k in keys.iter() { map.insert(*k, 1); } diff --git a/src/libextra/crypto/digest.rs b/src/libextra/crypto/digest.rs index 92507f9ca88..0efd88fdf50 100644 --- a/src/libextra/crypto/digest.rs +++ b/src/libextra/crypto/digest.rs @@ -45,7 +45,7 @@ pub trait Digest { fn to_hex(rr: &[u8]) -> ~str { let mut s = ~""; - for rr.iter().advance() |b| { + foreach b in rr.iter() { let hex = uint::to_str_radix(*b as uint, 16u); if hex.len() == 1 { s.push_char('0'); diff --git a/src/libextra/crypto/sha1.rs b/src/libextra/crypto/sha1.rs index dbc65754266..7ede1978495 100644 --- a/src/libextra/crypto/sha1.rs +++ b/src/libextra/crypto/sha1.rs @@ -53,7 +53,7 @@ pub struct Sha1 { fn add_input(st: &mut Sha1, msg: &[u8]) { assert!((!st.computed)); - for msg.iter().advance |element| { + foreach element in msg.iter() { st.msg_block[st.msg_block_idx] = *element; st.msg_block_idx += 1; st.len_low += 8; @@ -150,7 +150,7 @@ fn circular_shift(bits: u32, word: u32) -> u32 { fn mk_result(st: &mut Sha1, rs: &mut [u8]) { if !st.computed { pad_msg(st); st.computed = true; } let mut i = 0; - for st.h.mut_iter().advance |ptr_hpart| { + foreach ptr_hpart in st.h.mut_iter() { let hpart = *ptr_hpart; rs[i] = (hpart >> 24u32 & 0xFFu32) as u8; rs[i+1] = (hpart >> 16u32 & 0xFFu32) as u8; @@ -334,7 +334,7 @@ mod tests { let mut out = [0u8, ..20]; let mut sh = ~Sha1::new(); - for tests.iter().advance |t| { + foreach t in tests.iter() { (*sh).input_str(t.input); sh.result(out); assert!(t.output.as_slice() == out); @@ -348,7 +348,7 @@ mod tests { // Test that it works when accepting the message in pieces - for tests.iter().advance |t| { + foreach t in tests.iter() { let len = t.input.len(); let mut left = len; while left > 0u { diff --git a/src/libextra/crypto/sha2.rs b/src/libextra/crypto/sha2.rs index dfefe9779d1..27612b00f61 100644 --- a/src/libextra/crypto/sha2.rs +++ b/src/libextra/crypto/sha2.rs @@ -939,7 +939,7 @@ mod tests { fn test_hash(sh: &mut D, tests: &[Test]) { // Test that it works when accepting the message all at once - for tests.iter().advance() |t| { + foreach t in tests.iter() { sh.input_str(t.input); let out_str = sh.result_str(); @@ -949,7 +949,7 @@ mod tests { } // Test that it works when accepting the message in pieces - for tests.iter().advance() |t| { + foreach t in tests.iter() { let len = t.input.len(); let mut left = len; while left > 0u { diff --git a/src/libextra/dlist.rs b/src/libextra/dlist.rs index 88159ce5552..c684ff14615 100644 --- a/src/libextra/dlist.rs +++ b/src/libextra/dlist.rs @@ -548,7 +548,7 @@ impl> FromIterator for DList { impl> Extendable for DList { fn extend(&mut self, iterator: &mut T) { - for iterator.advance |elt| { self.push_back(elt); } + foreach elt in *iterator { self.push_back(elt); } } } @@ -688,7 +688,7 @@ mod tests { check_links(&m); let sum = v + u; assert_eq!(sum.len(), m.len()); - for sum.consume_iter().advance |elt| { + foreach elt in sum.consume_iter() { assert_eq!(m.pop_front(), Some(elt)) } } @@ -712,7 +712,7 @@ mod tests { check_links(&m); let sum = u + v; assert_eq!(sum.len(), m.len()); - for sum.consume_iter().advance |elt| { + foreach elt in sum.consume_iter() { assert_eq!(m.pop_front(), Some(elt)) } } @@ -743,7 +743,7 @@ mod tests { #[test] fn test_iterator() { let m = generate_test(); - for m.iter().enumerate().advance |(i, elt)| { + foreach (i, elt) in m.iter().enumerate() { assert_eq!(i as int, *elt); } let mut n = DList::new(); @@ -791,7 +791,7 @@ mod tests { #[test] fn test_rev_iter() { let m = generate_test(); - for m.rev_iter().enumerate().advance |(i, elt)| { + foreach (i, elt) in m.rev_iter().enumerate() { assert_eq!((6 - i) as int, *elt); } let mut n = DList::new(); @@ -808,7 +808,7 @@ mod tests { fn test_mut_iter() { let mut m = generate_test(); let mut len = m.len(); - for m.mut_iter().enumerate().advance |(i, elt)| { + foreach (i, elt) in m.mut_iter().enumerate() { assert_eq!(i as int, *elt); len -= 1; } @@ -900,7 +900,7 @@ mod tests { #[test] fn test_mut_rev_iter() { let mut m = generate_test(); - for m.mut_rev_iter().enumerate().advance |(i, elt)| { + foreach (i, elt) in m.mut_rev_iter().enumerate() { assert_eq!((6-i) as int, *elt); } let mut n = DList::new(); @@ -970,7 +970,7 @@ mod tests { check_links(&m); let mut i = 0u; - for m.consume_iter().zip(v.iter()).advance |(a, &b)| { + foreach (a, &b) in m.consume_iter().zip(v.iter()) { i += 1; assert_eq!(a, b); } diff --git a/src/libextra/fileinput.rs b/src/libextra/fileinput.rs index d7cf217fbec..04bddeccf12 100644 --- a/src/libextra/fileinput.rs +++ b/src/libextra/fileinput.rs @@ -419,7 +419,7 @@ mod test { fn make_file(path : &Path, contents: &[~str]) { let file = io::file_writer(path, [io::Create, io::Truncate]).unwrap(); - for contents.iter().advance |str| { + foreach str in contents.iter() { file.write_str(*str); file.write_char('\n'); } @@ -446,13 +446,13 @@ mod test { |i| fmt!("tmp/lib-fileinput-test-fileinput-read-byte-%u.tmp", i)), true); // 3 files containing 0\n, 1\n, and 2\n respectively - for filenames.iter().enumerate().advance |(i, filename)| { + foreach (i, filename) in filenames.iter().enumerate() { make_file(filename.get_ref(), [fmt!("%u", i)]); } let fi = FileInput::from_vec(filenames.clone()); - for "012".iter().enumerate().advance |(line, c)| { + foreach (line, c) in "012".iter().enumerate() { assert_eq!(fi.read_byte(), c as int); assert_eq!(fi.state().line_num, line); assert_eq!(fi.state().line_num_file, 0); @@ -476,7 +476,7 @@ mod test { |i| fmt!("tmp/lib-fileinput-test-fileinput-read-%u.tmp", i)), true); // 3 files containing 1\n, 2\n, and 3\n respectively - for filenames.iter().enumerate().advance |(i, filename)| { + foreach (i, filename) in filenames.iter().enumerate() { make_file(filename.get_ref(), [fmt!("%u", i)]); } @@ -496,7 +496,7 @@ mod test { 3, |i| fmt!("tmp/lib-fileinput-test-input-vec-%u.tmp", i)), true); - for filenames.iter().enumerate().advance |(i, filename)| { + foreach (i, filename) in filenames.iter().enumerate() { let contents = vec::from_fn(3, |j| fmt!("%u %u", i, j)); make_file(filename.get_ref(), contents); @@ -517,7 +517,7 @@ mod test { 3, |i| fmt!("tmp/lib-fileinput-test-input-vec-state-%u.tmp", i)),true); - for filenames.iter().enumerate().advance |(i, filename)| { + foreach (i, filename) in filenames.iter().enumerate() { let contents = vec::from_fn(3, |j| fmt!("%u %u", i, j + 1)); make_file(filename.get_ref(), contents); @@ -583,7 +583,7 @@ mod test { 3, |i| fmt!("tmp/lib-fileinput-test-next-file-%u.tmp", i)),true); - for filenames.iter().enumerate().advance |(i, filename)| { + foreach (i, filename) in filenames.iter().enumerate() { let contents = vec::from_fn(3, |j| fmt!("%u %u", i, j + 1)); make_file(filename.get_ref(), contents); diff --git a/src/libextra/getopts.rs b/src/libextra/getopts.rs index e2543017a8d..b0e6f82322b 100644 --- a/src/libextra/getopts.rs +++ b/src/libextra/getopts.rs @@ -307,7 +307,7 @@ pub fn getopts(args: &[~str], opts: &[Opt]) -> Result { } } let mut name_pos = 0; - for names.iter().advance() |nm| { + foreach nm in names.iter() { name_pos += 1; let optid = match find_opt(opts, (*nm).clone()) { Some(id) => id, @@ -392,7 +392,7 @@ pub fn opt_count(mm: &Matches, nm: &str) -> uint { /// Returns true if any of several options were matched pub fn opts_present(mm: &Matches, names: &[~str]) -> bool { - for names.iter().advance |nm| { + foreach nm in names.iter() { match find_opt(mm.opts, mkname(*nm)) { Some(id) if !mm.vals[id].is_empty() => return true, _ => (), @@ -422,7 +422,7 @@ pub fn opt_str(mm: &Matches, nm: &str) -> ~str { * option took an argument */ pub fn opts_str(mm: &Matches, names: &[~str]) -> ~str { - for names.iter().advance |nm| { + foreach nm in names.iter() { match opt_val(mm, *nm) { Some(Val(ref s)) => return (*s).clone(), _ => () @@ -441,7 +441,7 @@ pub fn opts_str(mm: &Matches, names: &[~str]) -> ~str { pub fn opt_strs(mm: &Matches, nm: &str) -> ~[~str] { let mut acc: ~[~str] = ~[]; let r = opt_vals(mm, nm); - for r.iter().advance |v| { + foreach v in r.iter() { match *v { Val(ref s) => acc.push((*s).clone()), _ => () } } acc @@ -671,7 +671,7 @@ pub mod groups { // Normalize desc to contain words separated by one space character let mut desc_normalized_whitespace = ~""; - for desc.word_iter().advance |word| { + foreach word in desc.word_iter() { desc_normalized_whitespace.push_str(word); desc_normalized_whitespace.push_char(' '); } diff --git a/src/libextra/iter.rs b/src/libextra/iter.rs index ad8dcf98317..3552ff59783 100644 --- a/src/libextra/iter.rs +++ b/src/libextra/iter.rs @@ -27,7 +27,7 @@ internal iterator by calling the `advance` method. For example: let xs = [0u, 1, 2, 3, 4, 5]; let ys = [30, 40, 50, 60]; let mut it = xs.iter().chain(ys.iter()); -for it.advance |&x: &uint| { +foreach &x: &uint in it { println(x.to_str()); } ~~~ diff --git a/src/libextra/json.rs b/src/libextra/json.rs index 4cd67d6ebac..f0d5b336e30 100644 --- a/src/libextra/json.rs +++ b/src/libextra/json.rs @@ -57,7 +57,7 @@ pub struct Error { fn escape_str(s: &str) -> ~str { let mut escaped = ~"\""; - for s.iter().advance |c| { + foreach c in s.iter() { match c { '"' => escaped.push_str("\\\""), '\\' => escaped.push_str("\\\\"), @@ -923,7 +923,7 @@ impl serialize::Decoder for Decoder { fn read_char(&mut self) -> char { let mut v = ~[]; let s = self.read_str(); - for s.iter().advance |c| { v.push(c) } + foreach c in s.iter() { v.push(c) } if v.len() != 1 { fail!("string must have one character") } v[0] } @@ -949,7 +949,7 @@ impl serialize::Decoder for Decoder { let name = match self.stack.pop() { String(s) => s, List(list) => { - for list.consume_rev_iter().advance |v| { + foreach v in list.consume_rev_iter() { self.stack.push(v); } match self.stack.pop() { @@ -1067,7 +1067,7 @@ impl serialize::Decoder for Decoder { let len = match self.stack.pop() { List(list) => { let len = list.len(); - for list.consume_rev_iter().advance |v| { + foreach v in list.consume_rev_iter() { self.stack.push(v); } len @@ -1087,7 +1087,7 @@ impl serialize::Decoder for Decoder { let len = match self.stack.pop() { Object(obj) => { let len = obj.len(); - for obj.consume_iter().advance |(key, value)| { + foreach (key, value) in obj.consume_iter() { self.stack.push(value); self.stack.push(String(key)); } @@ -1157,12 +1157,12 @@ impl Ord for Json { let mut d1_flat = ~[]; // FIXME #4430: this is horribly inefficient... - for d0.iter().advance |(k, v)| { + foreach (k, v) in d0.iter() { d0_flat.push((@(*k).clone(), @(*v).clone())); } d0_flat.qsort(); - for d1.iter().advance |(k, v)| { + foreach (k, v) in d1.iter() { d1_flat.push((@(*k).clone(), @(*v).clone())); } d1_flat.qsort(); @@ -1297,7 +1297,7 @@ impl ToJson for ~[A] { impl ToJson for TreeMap<~str, A> { fn to_json(&self) -> Json { let mut d = TreeMap::new(); - for self.iter().advance |(key, value)| { + foreach (key, value) in self.iter() { d.insert((*key).clone(), value.to_json()); } Object(~d) @@ -1307,7 +1307,7 @@ impl ToJson for TreeMap<~str, A> { impl ToJson for HashMap<~str, A> { fn to_json(&self) -> Json { let mut d = TreeMap::new(); - for self.iter().advance |(key, value)| { + foreach (key, value) in self.iter() { d.insert((*key).clone(), value.to_json()); } Object(~d) @@ -1339,7 +1339,6 @@ mod tests { use super::*; use std::io; - use std::result; use serialize::Decodable; use treemap::TreeMap; @@ -1365,7 +1364,7 @@ mod tests { fn mk_object(items: &[(~str, Json)]) -> Json { let mut d = ~TreeMap::new(); - for items.iter().advance |item| { + foreach item in items.iter() { match *item { (ref key, ref value) => { d.insert((*key).clone(), (*value).clone()); }, } diff --git a/src/libextra/num/bigint.rs b/src/libextra/num/bigint.rs index 46a74457274..453ad857a05 100644 --- a/src/libextra/num/bigint.rs +++ b/src/libextra/num/bigint.rs @@ -131,7 +131,7 @@ impl TotalOrd for BigUint { if s_len < o_len { return Less; } if s_len > o_len { return Greater; } - for self.data.rev_iter().zip(other.data.rev_iter()).advance |(&self_i, &other_i)| { + foreach (&self_i, &other_i) in self.data.rev_iter().zip(other.data.rev_iter()) { cond!((self_i < other_i) { return Less; } (self_i > other_i) { return Greater; }) } @@ -420,7 +420,7 @@ impl Integer for BigUint { let bn = *b.data.last(); let mut d = ~[]; let mut carry = 0; - for an.rev_iter().advance |elt| { + foreach elt in an.rev_iter() { let ai = BigDigit::to_uint(carry, *elt); let di = ai / (bn as uint); assert!(di < BigDigit::base); @@ -524,7 +524,7 @@ impl ToStrRadix for BigUint { fn fill_concat(v: &[BigDigit], radix: uint, l: uint) -> ~str { if v.is_empty() { return ~"0" } let mut s = str::with_capacity(v.len() * l); - for v.rev_iter().advance |n| { + foreach n in v.rev_iter() { let ss = uint::to_str_radix(*n as uint, radix); s.push_str("0".repeat(l - ss.len())); s.push_str(ss); @@ -651,7 +651,7 @@ impl BigUint { let mut borrow = 0; let mut shifted = ~[]; - for self.data.rev_iter().advance |elem| { + foreach elem in self.data.rev_iter() { shifted = ~[(*elem >> n_bits) | borrow] + shifted; borrow = *elem << (BigDigit::bits - n_bits); } @@ -1186,8 +1186,8 @@ mod biguint_tests { fn test_cmp() { let data: ~[BigUint] = [ &[], &[1], &[2], &[-1], &[0, 1], &[2, 1], &[1, 1, 1] ] .map(|v| BigUint::from_slice(*v)); - for data.iter().enumerate().advance |(i, ni)| { - for data.slice(i, data.len()).iter().enumerate().advance |(j0, nj)| { + foreach (i, ni) in data.iter().enumerate() { + foreach (j0, nj) in data.slice(i, data.len()).iter().enumerate() { let j = j0 + i; if i == j { assert_eq!(ni.cmp(nj), Equal); @@ -1360,7 +1360,7 @@ mod biguint_tests { #[test] fn test_add() { - for sum_triples.iter().advance |elm| { + foreach elm in sum_triples.iter() { let (aVec, bVec, cVec) = *elm; let a = BigUint::from_slice(aVec); let b = BigUint::from_slice(bVec); @@ -1373,7 +1373,7 @@ mod biguint_tests { #[test] fn test_sub() { - for sum_triples.iter().advance |elm| { + foreach elm in sum_triples.iter() { let (aVec, bVec, cVec) = *elm; let a = BigUint::from_slice(aVec); let b = BigUint::from_slice(bVec); @@ -1424,7 +1424,7 @@ mod biguint_tests { #[test] fn test_mul() { - for mul_triples.iter().advance |elm| { + foreach elm in mul_triples.iter() { let (aVec, bVec, cVec) = *elm; let a = BigUint::from_slice(aVec); let b = BigUint::from_slice(bVec); @@ -1434,7 +1434,7 @@ mod biguint_tests { assert!(b * a == c); } - for div_rem_quadruples.iter().advance |elm| { + foreach elm in div_rem_quadruples.iter() { let (aVec, bVec, cVec, dVec) = *elm; let a = BigUint::from_slice(aVec); let b = BigUint::from_slice(bVec); @@ -1448,7 +1448,7 @@ mod biguint_tests { #[test] fn test_div_rem() { - for mul_triples.iter().advance |elm| { + foreach elm in mul_triples.iter() { let (aVec, bVec, cVec) = *elm; let a = BigUint::from_slice(aVec); let b = BigUint::from_slice(bVec); @@ -1462,7 +1462,7 @@ mod biguint_tests { } } - for div_rem_quadruples.iter().advance |elm| { + foreach elm in div_rem_quadruples.iter() { let (aVec, bVec, cVec, dVec) = *elm; let a = BigUint::from_slice(aVec); let b = BigUint::from_slice(bVec); @@ -1579,9 +1579,9 @@ mod biguint_tests { #[test] fn test_to_str_radix() { let r = to_str_pairs(); - for r.iter().advance |num_pair| { + foreach num_pair in r.iter() { let &(ref n, ref rs) = num_pair; - for rs.iter().advance |str_pair| { + foreach str_pair in rs.iter() { let &(ref radix, ref str) = str_pair; assert_eq!(&n.to_str_radix(*radix), str); } @@ -1591,9 +1591,9 @@ mod biguint_tests { #[test] fn test_from_str_radix() { let r = to_str_pairs(); - for r.iter().advance |num_pair| { + foreach num_pair in r.iter() { let &(ref n, ref rs) = num_pair; - for rs.iter().advance |str_pair| { + foreach str_pair in rs.iter() { let &(ref radix, ref str) = str_pair; assert_eq!(n, &FromStrRadix::from_str_radix(*str, *radix).get()); } @@ -1658,14 +1658,14 @@ mod bigint_tests { fn test_cmp() { let vs = [ &[2 as BigDigit], &[1, 1], &[2, 1], &[1, 1, 1] ]; let mut nums = ~[]; - for vs.rev_iter().advance |s| { + foreach s in vs.rev_iter() { nums.push(BigInt::from_slice(Minus, *s)); } nums.push(Zero::zero()); nums.push_all_move(vs.map(|s| BigInt::from_slice(Plus, *s))); - for nums.iter().enumerate().advance |(i, ni)| { - for nums.slice(i, nums.len()).iter().enumerate().advance |(j0, nj)| { + foreach (i, ni) in nums.iter().enumerate() { + foreach (j0, nj) in nums.slice(i, nums.len()).iter().enumerate() { let j = i + j0; if i == j { assert_eq!(ni.cmp(nj), Equal); @@ -1769,7 +1769,7 @@ mod bigint_tests { #[test] fn test_add() { - for sum_triples.iter().advance |elm| { + foreach elm in sum_triples.iter() { let (aVec, bVec, cVec) = *elm; let a = BigInt::from_slice(Plus, aVec); let b = BigInt::from_slice(Plus, bVec); @@ -1788,7 +1788,7 @@ mod bigint_tests { #[test] fn test_sub() { - for sum_triples.iter().advance |elm| { + foreach elm in sum_triples.iter() { let (aVec, bVec, cVec) = *elm; let a = BigInt::from_slice(Plus, aVec); let b = BigInt::from_slice(Plus, bVec); @@ -1845,7 +1845,7 @@ mod bigint_tests { #[test] fn test_mul() { - for mul_triples.iter().advance |elm| { + foreach elm in mul_triples.iter() { let (aVec, bVec, cVec) = *elm; let a = BigInt::from_slice(Plus, aVec); let b = BigInt::from_slice(Plus, bVec); @@ -1858,7 +1858,7 @@ mod bigint_tests { assert!((-b) * a == -c); } - for div_rem_quadruples.iter().advance |elm| { + foreach elm in div_rem_quadruples.iter() { let (aVec, bVec, cVec, dVec) = *elm; let a = BigInt::from_slice(Plus, aVec); let b = BigInt::from_slice(Plus, bVec); @@ -1897,7 +1897,7 @@ mod bigint_tests { } } - for mul_triples.iter().advance |elm| { + foreach elm in mul_triples.iter() { let (aVec, bVec, cVec) = *elm; let a = BigInt::from_slice(Plus, aVec); let b = BigInt::from_slice(Plus, bVec); @@ -1907,7 +1907,7 @@ mod bigint_tests { if !b.is_zero() { check(&c, &b, &a, &Zero::zero()); } } - for div_rem_quadruples.iter().advance |elm| { + foreach elm in div_rem_quadruples.iter() { let (aVec, bVec, cVec, dVec) = *elm; let a = BigInt::from_slice(Plus, aVec); let b = BigInt::from_slice(Plus, bVec); @@ -1940,7 +1940,7 @@ mod bigint_tests { check_sub(&a.neg(), b, &q.neg(), &r.neg()); check_sub(&a.neg(), &b.neg(), q, &r.neg()); } - for mul_triples.iter().advance |elm| { + foreach elm in mul_triples.iter() { let (aVec, bVec, cVec) = *elm; let a = BigInt::from_slice(Plus, aVec); let b = BigInt::from_slice(Plus, bVec); @@ -1950,7 +1950,7 @@ mod bigint_tests { if !b.is_zero() { check(&c, &b, &a, &Zero::zero()); } } - for div_rem_quadruples.iter().advance |elm| { + foreach elm in div_rem_quadruples.iter() { let (aVec, bVec, cVec, dVec) = *elm; let a = BigInt::from_slice(Plus, aVec); let b = BigInt::from_slice(Plus, bVec); diff --git a/src/libextra/num/complex.rs b/src/libextra/num/complex.rs index 00224f8b06d..82b0808b788 100644 --- a/src/libextra/num/complex.rs +++ b/src/libextra/num/complex.rs @@ -239,14 +239,14 @@ mod test { fn test_scale_unscale() { assert_eq!(_05_05i.scale(2f), _1_1i); assert_eq!(_1_1i.unscale(2f), _05_05i); - for all_consts.iter().advance |&c| { + foreach &c in all_consts.iter() { assert_eq!(c.scale(2f).unscale(2f), c); } } #[test] fn test_conj() { - for all_consts.iter().advance |&c| { + foreach &c in all_consts.iter() { assert_eq!(c.conj(), Cmplx::new(c.re, -c.im)); assert_eq!(c.conj().conj(), c); } @@ -283,7 +283,7 @@ mod test { let (r, theta) = c.to_polar(); assert!((c - Cmplx::from_polar(&r, &theta)).norm() < 1e-6); } - for all_consts.iter().advance |&c| { test(c); } + foreach &c in all_consts.iter() { test(c); } } mod arith { @@ -296,7 +296,7 @@ mod test { assert_eq!(_0_1i + _1_0i, _1_1i); assert_eq!(_1_0i + _neg1_1i, _0_1i); - for all_consts.iter().advance |&c| { + foreach &c in all_consts.iter() { assert_eq!(_0_0i + c, c); assert_eq!(c + _0_0i, c); } @@ -308,7 +308,7 @@ mod test { assert_eq!(_0_1i - _1_0i, _neg1_1i); assert_eq!(_0_1i - _neg1_1i, _1_0i); - for all_consts.iter().advance |&c| { + foreach &c in all_consts.iter() { assert_eq!(c - _0_0i, c); assert_eq!(c - c, _0_0i); } @@ -323,7 +323,7 @@ mod test { assert_eq!(_0_1i * _0_1i, -_1_0i); assert_eq!(_0_1i * _0_1i * _0_1i * _0_1i, _1_0i); - for all_consts.iter().advance |&c| { + foreach &c in all_consts.iter() { assert_eq!(c * _1_0i, c); assert_eq!(_1_0i * c, c); } @@ -331,7 +331,7 @@ mod test { #[test] fn test_div() { assert_eq!(_neg1_1i / _0_1i, _1_1i); - for all_consts.iter().advance |&c| { + foreach &c in all_consts.iter() { if c != Zero::zero() { assert_eq!(c / c, _1_0i); } @@ -341,7 +341,7 @@ mod test { fn test_neg() { assert_eq!(-_1_0i + _0_1i, _neg1_1i); assert_eq!((-_0_1i) * _0_1i, _1_0i); - for all_consts.iter().advance |&c| { + foreach &c in all_consts.iter() { assert_eq!(-(-c), c); } } diff --git a/src/libextra/num/rational.rs b/src/libextra/num/rational.rs index ff14009e556..af09ba42b80 100644 --- a/src/libextra/num/rational.rs +++ b/src/libextra/num/rational.rs @@ -500,7 +500,7 @@ mod test { } let xs = ["0 /1", "abc", "", "1/", "--1/2","3/2/1"]; - for xs.iter().advance |&s| { + foreach &s in xs.iter() { test(s); } } @@ -540,7 +540,7 @@ mod test { } let xs = ["0 /1", "abc", "", "1/", "--1/2","3/2/1", "3/2"]; - for xs.iter().advance |&s| { + foreach &s in xs.iter() { test(s); } } diff --git a/src/libextra/priority_queue.rs b/src/libextra/priority_queue.rs index 1c92a4f34e5..9873ab3d858 100644 --- a/src/libextra/priority_queue.rs +++ b/src/libextra/priority_queue.rs @@ -206,7 +206,7 @@ impl> Extendable for PriorityQueue { let len = self.capacity(); self.reserve_at_least(len + lower); - for iter.advance |elem| { + foreach elem in *iter { self.push(elem); } } @@ -223,7 +223,7 @@ mod tests { let iterout = ~[9, 5, 3]; let pq = PriorityQueue::from_vec(data); let mut i = 0; - for pq.iter().advance |el| { + foreach el in pq.iter() { assert_eq!(*el, iterout[i]); i += 1; } @@ -369,7 +369,7 @@ mod tests { let mut q: PriorityQueue = xs.rev_iter().transform(|&x| x).collect(); - for xs.iter().advance |&x| { + foreach &x in xs.iter() { assert_eq!(q.pop(), x); } } diff --git a/src/libextra/ringbuf.rs b/src/libextra/ringbuf.rs index 92183f22d3b..e2950293719 100644 --- a/src/libextra/ringbuf.rs +++ b/src/libextra/ringbuf.rs @@ -39,7 +39,7 @@ impl Container for RingBuf { impl Mutable for RingBuf { /// Clear the RingBuf, removing all values. fn clear(&mut self) { - for self.elts.mut_iter().advance |x| { *x = None } + foreach x in self.elts.mut_iter() { *x = None } self.nelts = 0; self.lo = 0; } @@ -334,7 +334,7 @@ impl> FromIterator for RingBuf { impl> Extendable for RingBuf { fn extend(&mut self, iterator: &mut T) { - for iterator.advance |elt| { + foreach elt in *iterator { self.push_back(elt); } } @@ -653,7 +653,7 @@ mod tests { d.push_front(i); } - for d.mut_iter().enumerate().advance |(i, elt)| { + foreach (i, elt) in d.mut_iter().enumerate() { assert_eq!(*elt, 2 - i); *elt = i; } @@ -676,7 +676,7 @@ mod tests { d.push_front(i); } - for d.mut_rev_iter().enumerate().advance |(i, elt)| { + foreach (i, elt) in d.mut_rev_iter().enumerate() { assert_eq!(*elt, i); *elt = i; } @@ -700,7 +700,7 @@ mod tests { let mut seq = iterator::Counter::new(0u, 2).take_(256); let deq: RingBuf = seq.collect(); - for deq.iter().enumerate().advance |(i, &x)| { + foreach (i, &x) in deq.iter().enumerate() { assert_eq!(2*i, x); } assert_eq!(deq.len(), 256); diff --git a/src/libextra/serialize.rs b/src/libextra/serialize.rs index 600c7c10fec..0c8821e753e 100644 --- a/src/libextra/serialize.rs +++ b/src/libextra/serialize.rs @@ -444,7 +444,7 @@ impl + 'static> Decodable for @mut T { impl<'self, S:Encoder,T:Encodable> Encodable for &'self [T] { fn encode(&self, s: &mut S) { do s.emit_seq(self.len()) |s| { - for self.iter().enumerate().advance |(i, e)| { + foreach (i, e) in self.iter().enumerate() { s.emit_seq_elt(i, |s| e.encode(s)) } } @@ -454,7 +454,7 @@ impl<'self, S:Encoder,T:Encodable> Encodable for &'self [T] { impl> Encodable for ~[T] { fn encode(&self, s: &mut S) { do s.emit_seq(self.len()) |s| { - for self.iter().enumerate().advance |(i, e)| { + foreach (i, e) in self.iter().enumerate() { s.emit_seq_elt(i, |s| e.encode(s)) } } @@ -474,7 +474,7 @@ impl> Decodable for ~[T] { impl> Encodable for @[T] { fn encode(&self, s: &mut S) { do s.emit_seq(self.len()) |s| { - for self.iter().enumerate().advance |(i, e)| { + foreach (i, e) in self.iter().enumerate() { s.emit_seq_elt(i, |s| e.encode(s)) } } @@ -668,7 +668,7 @@ impl< > Encodable for DList { fn encode(&self, s: &mut S) { do s.emit_seq(self.len()) |s| { - for self.iter().enumerate().advance |(i, e)| { + foreach (i, e) in self.iter().enumerate() { s.emit_seq_elt(i, |s| e.encode(s)); } } @@ -693,7 +693,7 @@ impl< > Encodable for RingBuf { fn encode(&self, s: &mut S) { do s.emit_seq(self.len()) |s| { - for self.iter().enumerate().advance |(i, e)| { + foreach (i, e) in self.iter().enumerate() { s.emit_seq_elt(i, |s| e.encode(s)); } } @@ -720,7 +720,7 @@ impl< fn encode(&self, e: &mut E) { do e.emit_map(self.len()) |e| { let mut i = 0; - for self.iter().advance |(key, val)| { + foreach (key, val) in self.iter() { e.emit_map_elt_key(i, |e| key.encode(e)); e.emit_map_elt_val(i, |e| val.encode(e)); i += 1; @@ -754,7 +754,7 @@ impl< fn encode(&self, s: &mut S) { do s.emit_seq(self.len()) |s| { let mut i = 0; - for self.iter().advance |e| { + foreach e in self.iter() { s.emit_seq_elt(i, |s| e.encode(s)); i += 1; } @@ -842,7 +842,7 @@ impl< fn encode(&self, e: &mut E) { do e.emit_map(self.len()) |e| { let mut i = 0; - for self.iter().advance |(key, val)| { + foreach (key, val) in self.iter() { e.emit_map_elt_key(i, |e| key.encode(e)); e.emit_map_elt_val(i, |e| val.encode(e)); i += 1; @@ -876,7 +876,7 @@ impl< fn encode(&self, s: &mut S) { do s.emit_seq(self.len()) |s| { let mut i = 0; - for self.iter().advance |e| { + foreach e in self.iter() { s.emit_seq_elt(i, |s| e.encode(s)); i += 1; } @@ -911,7 +911,7 @@ pub trait EncoderHelpers { impl EncoderHelpers for S { fn emit_from_vec(&mut self, v: &[T], f: &fn(&mut S, &T)) { do self.emit_seq(v.len()) |this| { - for v.iter().enumerate().advance |(i, e)| { + foreach (i, e) in v.iter().enumerate() { do this.emit_seq_elt(i) |this| { f(this, e) } diff --git a/src/libextra/smallintmap.rs b/src/libextra/smallintmap.rs index 11b093dd884..eba9e1a4ed1 100644 --- a/src/libextra/smallintmap.rs +++ b/src/libextra/smallintmap.rs @@ -447,7 +447,7 @@ mod test_map { assert!(m.insert(6, 10)); assert!(m.insert(10, 11)); - for m.mut_iter().advance |(k, v)| { + foreach (k, v) in m.mut_iter() { *v += k as int; } @@ -489,7 +489,7 @@ mod test_map { assert!(m.insert(6, 10)); assert!(m.insert(10, 11)); - for m.mut_rev_iter().advance |(k, v)| { + foreach (k, v) in m.mut_rev_iter() { *v += k as int; } @@ -507,7 +507,7 @@ mod test_map { let mut m = SmallIntMap::new(); m.insert(1, ~2); let mut called = false; - for m.consume().advance |(k, v)| { + foreach (k, v) in m.consume() { assert!(!called); called = true; assert_eq!(k, 1); diff --git a/src/libextra/sort.rs b/src/libextra/sort.rs index 57d8563861e..9cce19da524 100644 --- a/src/libextra/sort.rs +++ b/src/libextra/sort.rs @@ -733,7 +733,7 @@ fn copy_vec(dest: &mut [T], from: &[T]) { assert!(s1+from.len() <= dest.len()); - for from.iter().enumerate().advance |(i, v)| { + foreach (i, v) in from.iter().enumerate() { dest[s1+i] = (*v).clone(); } } @@ -843,7 +843,7 @@ mod test_qsort { let immut_names = names; let pairs = vec::zip_slice(expected, immut_names); - for pairs.iter().advance |p| { + foreach p in pairs.iter() { let (a, b) = *p; debug!("%d %d", a, b); assert_eq!(a, b); diff --git a/src/libextra/stats.rs b/src/libextra/stats.rs index b891d022292..69d0a343424 100644 --- a/src/libextra/stats.rs +++ b/src/libextra/stats.rs @@ -167,7 +167,7 @@ impl<'self> Stats for &'self [f64] { } else { let mean = self.mean(); let mut v = 0.0; - for self.iter().advance |s| { + foreach s in self.iter() { let x = *s - mean; v += x*x; } @@ -254,7 +254,7 @@ pub fn winsorize(samples: &mut [f64], pct: f64) { sort::tim_sort(tmp); let lo = percentile_of_sorted(tmp, pct); let hi = percentile_of_sorted(tmp, 100.0-pct); - for samples.mut_iter().advance |samp| { + foreach samp in samples.mut_iter() { if *samp > hi { *samp = hi } else if *samp < lo { diff --git a/src/libextra/sync.rs b/src/libextra/sync.rs index cd3db1b3a28..dc26d1e36ce 100644 --- a/src/libextra/sync.rs +++ b/src/libextra/sync.rs @@ -989,13 +989,13 @@ mod tests { } // wait until all children get in the mutex - for ports.iter().advance |port| { let _ = port.recv(); } + foreach port in ports.iter() { let _ = port.recv(); } do m.lock_cond |cond| { let num_woken = cond.broadcast(); assert_eq!(num_woken, num_waiters); } // wait until all children wake up - for ports.iter().advance |port| { let _ = port.recv(); } + foreach port in ports.iter() { let _ = port.recv(); } } #[test] fn test_mutex_cond_broadcast() { @@ -1080,7 +1080,7 @@ mod tests { } } } - for sibling_convos.iter().advance |p| { + foreach p in sibling_convos.iter() { let _ = p.recv(); // wait for sibling to get in the mutex } do m2.lock { } @@ -1090,7 +1090,7 @@ mod tests { assert!(result.is_err()); // child task must have finished by the time try returns let r = p.recv(); - for r.iter().advance |p| { p.recv(); } // wait on all its siblings + foreach p in r.iter() { p.recv(); } // wait on all its siblings do m.lock_cond |cond| { let woken = cond.broadcast(); assert_eq!(woken, 0); @@ -1357,13 +1357,13 @@ mod tests { } // wait until all children get in the mutex - for ports.iter().advance |port| { let _ = port.recv(); } + foreach port in ports.iter() { let _ = port.recv(); } do lock_cond(x, dg2) |cond| { let num_woken = cond.broadcast(); assert_eq!(num_woken, num_waiters); } // wait until all children wake up - for ports.iter().advance |port| { let _ = port.recv(); } + foreach port in ports.iter() { let _ = port.recv(); } } #[test] fn test_rwlock_cond_broadcast() { diff --git a/src/libextra/task_pool.rs b/src/libextra/task_pool.rs index edd16fe88f4..523e11e810c 100644 --- a/src/libextra/task_pool.rs +++ b/src/libextra/task_pool.rs @@ -35,7 +35,7 @@ pub struct TaskPool { #[unsafe_destructor] impl Drop for TaskPool { fn drop(&self) { - for self.channels.iter().advance |channel| { + foreach channel in self.channels.iter() { channel.send(Quit); } } diff --git a/src/libextra/terminfo/parm.rs b/src/libextra/terminfo/parm.rs index 114ab6702ae..3669c1ea0a3 100644 --- a/src/libextra/terminfo/parm.rs +++ b/src/libextra/terminfo/parm.rs @@ -102,11 +102,11 @@ pub fn expand(cap: &[u8], params: &[Param], vars: &mut Variables) Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), ]; - for mparams.mut_iter().zip(params.iter()).advance |(dst, src)| { + foreach (dst, src) in mparams.mut_iter().zip(params.iter()) { *dst = (*src).clone(); } - for cap.iter().transform(|&x| x).advance |c| { + foreach c in cap.iter().transform(|&x| x) { let cur = c as char; let mut old_state = state; match state { @@ -605,7 +605,7 @@ mod test { let mut varstruct = Variables::new(); let vars = &mut varstruct; let caps = ["%d", "%c", "%s", "%Pa", "%l", "%!", "%~"]; - for caps.iter().advance |cap| { + foreach cap in caps.iter() { let res = expand(cap.as_bytes(), [], vars); assert!(res.is_err(), "Op %s succeeded incorrectly with 0 stack entries", *cap); @@ -615,7 +615,7 @@ mod test { "Op %s failed with 1 stack entry: %s", *cap, res.unwrap_err()); } let caps = ["%+", "%-", "%*", "%/", "%m", "%&", "%|", "%A", "%O"]; - for caps.iter().advance |cap| { + foreach cap in caps.iter() { let res = expand(cap.as_bytes(), [], vars); assert!(res.is_err(), "Binop %s succeeded incorrectly with 0 stack entries", *cap); @@ -636,7 +636,7 @@ mod test { #[test] fn test_comparison_ops() { let v = [('<', [1u8, 0u8, 0u8]), ('=', [0u8, 1u8, 0u8]), ('>', [0u8, 0u8, 1u8])]; - for v.iter().advance |&(op, bs)| { + foreach &(op, bs) in v.iter() { let s = fmt!("%%{1}%%{2}%%%c%%d", op); let res = expand(s.as_bytes(), [], &mut Variables::new()); assert!(res.is_ok(), res.unwrap_err()); diff --git a/src/libextra/terminfo/parser/compiled.rs b/src/libextra/terminfo/parser/compiled.rs index e56b3b6bcf4..a6ed88fa559 100644 --- a/src/libextra/terminfo/parser/compiled.rs +++ b/src/libextra/terminfo/parser/compiled.rs @@ -272,7 +272,7 @@ pub fn parse(file: @Reader, longnames: bool) -> Result<~TermInfo, ~str> { return Err(~"error: hit EOF before end of string table"); } - for string_offsets.iter().enumerate().advance |(i, v)| { + foreach (i, v) in string_offsets.iter().enumerate() { let offset = *v; if offset == 0xFFFF { // non-entry loop; diff --git a/src/libextra/terminfo/searcher.rs b/src/libextra/terminfo/searcher.rs index 15aeeb3e654..175cf836c47 100644 --- a/src/libextra/terminfo/searcher.rs +++ b/src/libextra/terminfo/searcher.rs @@ -35,7 +35,7 @@ pub fn get_dbpath_for_term(term: &str) -> Option<~path> { dirs_to_search.push(homedir.unwrap().push(".terminfo")); // ncurses compatability } match getenv("TERMINFO_DIRS") { - Some(dirs) => for dirs.split_iter(':').advance |i| { + Some(dirs) => foreach i in dirs.split_iter(':') { if i == "" { dirs_to_search.push(path("/usr/share/terminfo")); } else { @@ -54,7 +54,7 @@ pub fn get_dbpath_for_term(term: &str) -> Option<~path> { }; // Look for the terminal in all of the search directories - for dirs_to_search.iter().advance |p| { + foreach p in dirs_to_search.iter() { let newp = ~p.push_many(&[str::from_char(first_char), term.to_owned()]); if os::path_exists(p) && os::path_exists(newp) { return Some(newp); diff --git a/src/libextra/test.rs b/src/libextra/test.rs index 984a4d3a543..37d833cc824 100644 --- a/src/libextra/test.rs +++ b/src/libextra/test.rs @@ -430,11 +430,11 @@ impl ConsoleTestState { pub fn write_failures(&self) { self.out.write_line("\nfailures:"); let mut failures = ~[]; - for self.failures.iter().advance() |f| { + foreach f in self.failures.iter() { failures.push(f.name.to_str()); } sort::tim_sort(failures); - for failures.iter().advance |name| { + foreach name in failures.iter() { self.out.write_line(fmt!(" %s", name.to_str())); } } @@ -446,7 +446,7 @@ impl ConsoleTestState { let mut added = 0; let mut removed = 0; - for diff.iter().advance() |(k, v)| { + foreach (k, v) in diff.iter() { match *v { LikelyNoise => noise += 1, MetricAdded => { @@ -566,7 +566,7 @@ pub fn run_tests_console(opts: &TestOpts, TrIgnored => st.ignored += 1, TrMetrics(mm) => { let tname = test.name.to_str(); - for mm.iter().advance() |(k,v)| { + foreach (k,v) in mm.iter() { st.metrics.insert_metric(tname + "." + *k, v.value, v.noise); } @@ -700,7 +700,7 @@ fn run_tests(opts: &TestOpts, // All benchmarks run at the end, in serial. // (this includes metric fns) - for filtered_benchs_and_metrics.consume_iter().advance |b| { + foreach b in filtered_benchs_and_metrics.consume_iter() { callback(TeWait(b.desc.clone())); run_test(!opts.run_benchmarks, b, ch.clone()); let (test, result) = p.recv(); @@ -888,7 +888,7 @@ impl MetricMap { pub fn compare_to_old(&self, old: &MetricMap, noise_pct: Option) -> MetricDiff { let mut diff : MetricDiff = TreeMap::new(); - for old.iter().advance |(k, vold)| { + foreach (k, vold) in old.iter() { let r = match self.find(k) { None => MetricRemoved, Some(v) => { @@ -925,7 +925,7 @@ impl MetricMap { }; diff.insert((*k).clone(), r); } - for self.iter().advance |(k, _)| { + foreach (k, _) in self.iter() { if !diff.contains_key(k) { diff.insert((*k).clone(), MetricAdded); } @@ -1040,7 +1040,7 @@ impl BenchHarness { loop { let loop_start = precise_time_ns(); - for samples.mut_iter().advance() |p| { + foreach p in samples.mut_iter() { self.bench_n(n as u64, |x| f(x)); *p = self.ns_per_iter() as f64; }; @@ -1048,7 +1048,7 @@ impl BenchHarness { stats::winsorize(samples, 5.0); let summ = stats::Summary::new(samples); - for samples.mut_iter().advance() |p| { + foreach p in samples.mut_iter() { self.bench_n(5 * n as u64, |x| f(x)); *p = self.ns_per_iter() as f64; }; @@ -1288,7 +1288,7 @@ mod tests { { fn testfn() { } let mut tests = ~[]; - for names.iter().advance |name| { + foreach name in names.iter() { let test = TestDescAndFn { desc: TestDesc { name: DynTestName((*name).clone()), @@ -1314,7 +1314,7 @@ mod tests { let pairs = vec::zip(expected, filtered); - for pairs.iter().advance |p| { + foreach p in pairs.iter() { match *p { (ref a, ref b) => { assert!(*a == b.desc.name.to_str()); diff --git a/src/libextra/time.rs b/src/libextra/time.rs index b07c18f0e4d..6595904a082 100644 --- a/src/libextra/time.rs +++ b/src/libextra/time.rs @@ -260,7 +260,7 @@ impl Tm { priv fn do_strptime(s: &str, format: &str) -> Result { fn match_str(s: &str, pos: uint, needle: &str) -> bool { let mut i = pos; - for needle.byte_iter().advance |ch| { + foreach ch in needle.byte_iter() { if s[i] != ch { return false; } @@ -863,9 +863,7 @@ mod tests { use std::float; use std::os; - use std::result; use std::result::{Err, Ok}; - use std::str; fn test_get_time() { static SOME_RECENT_DATE: i64 = 1325376000i64; // 2012-01-01T00:00:00Z @@ -1041,7 +1039,7 @@ mod tests { ~"Friday", ~"Saturday" ]; - for days.iter().advance |day| { + foreach day in days.iter() { assert!(test(*day, "%A")); } @@ -1054,7 +1052,7 @@ mod tests { ~"Fri", ~"Sat" ]; - for days.iter().advance |day| { + foreach day in days.iter() { assert!(test(*day, "%a")); } @@ -1072,7 +1070,7 @@ mod tests { ~"November", ~"December" ]; - for months.iter().advance |day| { + foreach day in months.iter() { assert!(test(*day, "%B")); } @@ -1090,7 +1088,7 @@ mod tests { ~"Nov", ~"Dec" ]; - for months.iter().advance |day| { + foreach day in months.iter() { assert!(test(*day, "%b")); } diff --git a/src/libextra/treemap.rs b/src/libextra/treemap.rs index 6148e14b79f..50ad5c77fba 100644 --- a/src/libextra/treemap.rs +++ b/src/libextra/treemap.rs @@ -674,7 +674,7 @@ fn remove(node: &mut Option<~TreeNode>, fn heir_swap(node: &mut ~TreeNode, child: &mut Option<~TreeNode>) { // *could* be done without recursion, but it won't borrow check - for child.mut_iter().advance |x| { + foreach x in child.mut_iter() { if x.right.is_some() { heir_swap(node, &mut x.right); } else { @@ -729,18 +729,18 @@ fn remove(node: &mut Option<~TreeNode>, save.level -= 1; if right_level > save.level { - for save.right.mut_iter().advance |x| { x.level = save.level } + foreach x in save.right.mut_iter() { x.level = save.level } } skew(save); - for save.right.mut_iter().advance |right| { + foreach right in save.right.mut_iter() { skew(right); - for right.right.mut_iter().advance |x| { skew(x) } + foreach x in right.right.mut_iter() { skew(x) } } split(save); - for save.right.mut_iter().advance |x| { split(x) } + foreach x in save.right.mut_iter() { split(x) } } return ret; @@ -763,7 +763,7 @@ impl> FromIterator<(K, V), T> for TreeMap> Extendable<(K, V), T> for TreeMap { #[inline] fn extend(&mut self, iter: &mut T) { - for iter.advance |(k, v)| { + foreach (k, v) in *iter { self.insert(k, v); } } @@ -780,7 +780,7 @@ impl> FromIterator for TreeSet { impl> Extendable for TreeSet { #[inline] fn extend(&mut self, iter: &mut Iter) { - for iter.advance |elem| { + foreach elem in *iter { self.insert(elem); } } @@ -863,13 +863,13 @@ mod test_treemap { fn check_equal(ctrl: &[(K, V)], map: &TreeMap) { assert_eq!(ctrl.is_empty(), map.is_empty()); - for ctrl.iter().advance |x| { + foreach x in ctrl.iter() { let &(ref k, ref v) = x; assert!(map.find(k).unwrap() == v) } - for map.iter().advance |(map_k, map_v)| { + foreach (map_k, map_v) in map.iter() { let mut found = false; - for ctrl.iter().advance |x| { + foreach x in ctrl.iter() { let &(ref ctrl_k, ref ctrl_v) = x; if *map_k == *ctrl_k { assert!(*map_v == *ctrl_v); @@ -983,7 +983,7 @@ mod test_treemap { assert!(m.insert(1, 2)); let mut n = 0; - for m.iter().advance |(k, v)| { + foreach (k, v) in m.iter() { assert_eq!(*k, n); assert_eq!(*v, n * 2); n += 1; @@ -1090,7 +1090,7 @@ mod test_treemap { (&x5, &y5)]; let mut i = 0; - for b.advance |x| { + foreach x in b { assert_eq!(expected[i], x); i += 1; @@ -1099,7 +1099,7 @@ mod test_treemap { } } - for b.advance |x| { + foreach x in b { assert_eq!(expected[i], x); i += 1; } @@ -1111,7 +1111,7 @@ mod test_treemap { let map: TreeMap = xs.iter().transform(|&x| x).collect(); - for xs.iter().advance |&(k, v)| { + foreach &(k, v) in xs.iter() { assert_eq!(map.find(&k), Some(&v)); } } @@ -1259,7 +1259,7 @@ mod test_set { assert!(m.insert(1)); let mut n = 0; - for m.iter().advance |x| { + foreach x in m.iter() { printfln!(x); assert_eq!(*x, n); n += 1 @@ -1288,8 +1288,8 @@ mod test_set { let mut set_a = TreeSet::new(); let mut set_b = TreeSet::new(); - for a.iter().advance |x| { assert!(set_a.insert(*x)) } - for b.iter().advance |y| { assert!(set_b.insert(*y)) } + foreach x in a.iter() { assert!(set_a.insert(*x)) } + foreach y in b.iter() { assert!(set_b.insert(*y)) } let mut i = 0; for f(&set_a, &set_b) |x| { @@ -1410,7 +1410,7 @@ mod test_set { let set: TreeSet = xs.iter().transform(|&x| x).collect(); - for xs.iter().advance |x: &int| { + foreach x in xs.iter() { assert!(set.contains(x)); } } diff --git a/src/libextra/url.rs b/src/libextra/url.rs index af8d5e17a7c..9b4bf9d0ad4 100644 --- a/src/libextra/url.rs +++ b/src/libextra/url.rs @@ -206,10 +206,10 @@ pub fn encode_form_urlencoded(m: &HashMap<~str, ~[~str]>) -> ~str { let mut out = ~""; let mut first = true; - for m.iter().advance |(key, values)| { + foreach (key, values) in m.iter() { let key = encode_plus(*key); - for values.iter().advance |value| { + foreach value in values.iter() { if first { first = false; } else { @@ -331,7 +331,7 @@ fn userinfo_to_str(userinfo: &UserInfo) -> ~str { fn query_from_str(rawquery: &str) -> Query { let mut query: Query = ~[]; if !rawquery.is_empty() { - for rawquery.split_iter('&').advance |p| { + foreach p in rawquery.split_iter('&') { let (k, v) = split_char_first(p, '='); query.push((decode_component(k), decode_component(v))); }; @@ -341,7 +341,7 @@ fn query_from_str(rawquery: &str) -> Query { pub fn query_to_str(query: &Query) -> ~str { let mut strvec = ~[]; - for query.iter().advance |kv| { + foreach kv in query.iter() { match kv { &(ref k, ref v) => { strvec.push(fmt!("%s=%s", @@ -356,7 +356,7 @@ pub fn query_to_str(query: &Query) -> ~str { // returns the scheme and the rest of the url, or a parsing error pub fn get_scheme(rawurl: &str) -> Result<(~str, ~str), ~str> { - for rawurl.iter().enumerate().advance |(i,c)| { + foreach (i,c) in rawurl.iter().enumerate() { match c { 'A' .. 'Z' | 'a' .. 'z' => loop, '0' .. '9' | '+' | '-' | '.' => { @@ -418,7 +418,7 @@ fn get_authority(rawurl: &str) -> let mut begin = 2; let mut end = len; - for rawurl.iter().enumerate().advance |(i,c)| { + foreach (i,c) in rawurl.iter().enumerate() { if i < 2 { loop; } // ignore the leading // // deal with input class first @@ -563,7 +563,7 @@ fn get_path(rawurl: &str, authority: bool) -> Result<(~str, ~str), ~str> { let len = rawurl.len(); let mut end = len; - for rawurl.iter().enumerate().advance |(i,c)| { + foreach (i,c) in rawurl.iter().enumerate() { match c { 'A' .. 'Z' | 'a' .. 'z' | '0' .. '9' | '&' |'\'' | '(' | ')' | '.' | '@' | ':' | '%' | '/' | '+' | '!' | '*' | ',' | ';' | '=' diff --git a/src/libextra/workcache.rs b/src/libextra/workcache.rs index 13a8ad36388..4cfe7727354 100644 --- a/src/libextra/workcache.rs +++ b/src/libextra/workcache.rs @@ -287,7 +287,7 @@ impl<'self> Prep<'self> { } fn all_fresh(&self, cat: &str, map: &WorkMap) -> bool { - for map.iter().advance |(k, v)| { + foreach (k, v) in map.iter() { if ! self.is_fresh(cat, k.kind, k.name, *v) { return false; } diff --git a/src/librust/rust.rs b/src/librust/rust.rs index 746b7529231..0d2148c4a12 100644 --- a/src/librust/rust.rs +++ b/src/librust/rust.rs @@ -215,7 +215,7 @@ fn usage() { \n" ); - for COMMANDS.iter().advance |command| { + foreach command in COMMANDS.iter() { let padding = " ".repeat(INDENT - command.cmd.len()); printfln!(" %s%s%s", command.cmd, padding, command.usage_line); } @@ -240,7 +240,7 @@ pub fn main() { if !args.is_empty() { let r = find_cmd(*args.head()); - for r.iter().advance |command| { + foreach command in r.iter() { let result = do_command(command, args.tail()); match result { Valid(exit_code) => unsafe { exit(exit_code.to_i32()) }, diff --git a/src/librustc/back/link.rs b/src/librustc/back/link.rs index d932dc80d51..02cb7f168ce 100644 --- a/src/librustc/back/link.rs +++ b/src/librustc/back/link.rs @@ -141,7 +141,7 @@ pub mod jit { let cstore = sess.cstore; let r = cstore::get_used_crate_files(cstore); - for r.iter().advance |cratepath| { + foreach cratepath in r.iter() { let path = cratepath.to_str(); debug!("linking: %s", path); @@ -507,7 +507,7 @@ pub fn build_link_meta(sess: Session, let mut cmh_items = ~[]; let linkage_metas = attr::find_linkage_metas(c.attrs); attr::require_unique_names(sess.diagnostic(), linkage_metas); - for linkage_metas.iter().advance |meta| { + foreach meta in linkage_metas.iter() { match meta.name_str_pair() { Some((n, value)) if "name" == n => name = Some(value), Some((n, value)) if "vers" == n => vers = Some(value), @@ -547,7 +547,7 @@ pub fn build_link_meta(sess: Session, } ast::MetaList(name, ref mis) => { write_string(symbol_hasher, len_and_str(name)); - for mis.iter().advance |m_| { + foreach m_ in mis.iter() { hash(symbol_hasher, m_); } } @@ -555,11 +555,11 @@ pub fn build_link_meta(sess: Session, } symbol_hasher.reset(); - for cmh_items.iter().advance |m| { + foreach m in cmh_items.iter() { hash(symbol_hasher, m); } - for dep_hashes.iter().advance |dh| { + foreach dh in dep_hashes.iter() { write_string(symbol_hasher, len_and_str(*dh)); } @@ -665,7 +665,7 @@ pub fn get_symbol_hash(ccx: &mut CrateContext, t: ty::t) -> @str { // gas accepts the following characters in symbols: a-z, A-Z, 0-9, ., _, $ pub fn sanitize(s: &str) -> ~str { let mut result = ~""; - for s.iter().advance |c| { + foreach c in s.iter() { match c { // Escape these with $ sequences '@' => result.push_str("$SP$"), @@ -712,7 +712,7 @@ pub fn mangle(sess: Session, ss: path) -> ~str { let mut n = ~"_ZN"; // Begin name-sequence. - for ss.iter().advance |s| { + foreach s in ss.iter() { match *s { path_name(s) | path_mod(s) => { let sani = sanitize(sess.str_of(s)); @@ -905,7 +905,7 @@ pub fn link_args(sess: Session, let cstore = sess.cstore; let r = cstore::get_used_crate_files(cstore); - for r.iter().advance |cratepath| { + foreach cratepath in r.iter() { if cratepath.filetype() == Some(~".rlib") { args.push(cratepath.to_str()); loop; @@ -917,12 +917,12 @@ pub fn link_args(sess: Session, } let ula = cstore::get_used_link_args(cstore); - for ula.iter().advance |arg| { args.push(arg.to_owned()); } + foreach arg in ula.iter() { args.push(arg.to_owned()); } // Add all the link args for external crates. do cstore::iter_crate_data(cstore) |crate_num, _| { let link_args = csearch::get_link_args_for_crate(cstore, crate_num); - for link_args.consume_iter().advance |link_arg| { + foreach link_arg in link_args.consume_iter() { args.push(link_arg); } } @@ -935,13 +935,13 @@ pub fn link_args(sess: Session, // to be found at compile time so it is still entirely up to outside // forces to make sure that library can be found at runtime. - for sess.opts.addl_lib_search_paths.iter().advance |path| { + foreach path in sess.opts.addl_lib_search_paths.iter() { args.push(~"-L" + path.to_str()); } // The names of the extern libraries let used_libs = cstore::get_used_libraries(cstore); - for used_libs.iter().advance |l| { args.push(~"-l" + *l); } + foreach l in used_libs.iter() { args.push(~"-l" + *l); } if *sess.building_library { args.push(lib_cmd); diff --git a/src/librustc/back/passes.rs b/src/librustc/back/passes.rs index 7b4db63c6ed..831719135b1 100644 --- a/src/librustc/back/passes.rs +++ b/src/librustc/back/passes.rs @@ -164,7 +164,7 @@ pub fn create_standard_passes(level: OptLevel) -> ~[~str] { } pub fn populate_pass_manager(sess: Session, pm: &mut PassManager, pass_list:&[~str]) { - for pass_list.iter().advance |nm| { + foreach nm in pass_list.iter() { match create_pass(*nm) { Some(p) => pm.add_pass(p), None => sess.warn(fmt!("Unknown pass %s", *nm)) @@ -189,15 +189,15 @@ pub fn list_passes() { io::println("\nAvailable Passes:"); io::println("\nAnalysis Passes:"); - for analysis_passes.iter().advance |&(name, desc)| { + foreach &(name, desc) in analysis_passes.iter() { printfln!(" %-30s -- %s", name, desc); } io::println("\nTransformation Passes:"); - for transform_passes.iter().advance |&(name, desc)| { + foreach &(name, desc) in transform_passes.iter() { printfln!(" %-30s -- %s", name, desc); } io::println("\nUtility Passes:"); - for utility_passes.iter().advance |&(name, desc)| { + foreach &(name, desc) in utility_passes.iter() { printfln!(" %-30s -- %s", name, desc); } } @@ -315,7 +315,7 @@ static utility_passes : &'static [(&'static str, &'static str)] = &'static [ fn passes_exist() { let mut failed = ~[]; unsafe { llvm::LLVMInitializePasses(); } - for analysis_passes.iter().advance |&(name,_)| { + foreach &(name,_) in analysis_passes.iter() { let pass = create_pass(name); if !pass.is_some() { failed.push(name); @@ -323,7 +323,7 @@ fn passes_exist() { unsafe { llvm::LLVMDestroyPass(pass.get()) } } } - for transform_passes.iter().advance |&(name,_)| { + foreach &(name,_) in transform_passes.iter() { let pass = create_pass(name); if !pass.is_some() { failed.push(name); @@ -331,7 +331,7 @@ fn passes_exist() { unsafe { llvm::LLVMDestroyPass(pass.get()) } } } - for utility_passes.iter().advance |&(name,_)| { + foreach &(name,_) in utility_passes.iter() { let pass = create_pass(name); if !pass.is_some() { failed.push(name); @@ -342,7 +342,7 @@ fn passes_exist() { if failed.len() > 0 { io::println("Some passes don't exist:"); - for failed.iter().advance |&n| { + foreach &n in failed.iter() { printfln!(" %s", n); } fail!(); diff --git a/src/librustc/back/rpath.rs b/src/librustc/back/rpath.rs index c56ed34309c..0bfbe1a80c5 100644 --- a/src/librustc/back/rpath.rs +++ b/src/librustc/back/rpath.rs @@ -64,7 +64,7 @@ fn get_rpaths(os: session::os, debug!("sysroot: %s", sysroot.to_str()); debug!("output: %s", output.to_str()); debug!("libs:"); - for libs.iter().advance |libpath| { + foreach libpath in libs.iter() { debug!(" %s", libpath.to_str()); } debug!("target_triple: %s", target_triple); @@ -83,7 +83,7 @@ fn get_rpaths(os: session::os, fn log_rpaths(desc: &str, rpaths: &[Path]) { debug!("%s rpaths:", desc); - for rpaths.iter().advance |rpath| { + foreach rpath in rpaths.iter() { debug!(" %s", rpath.to_str()); } } @@ -183,7 +183,7 @@ pub fn get_install_prefix_rpath(target_triple: &str) -> Path { pub fn minimize_rpaths(rpaths: &[Path]) -> ~[Path] { let mut set = HashSet::new(); let mut minimized = ~[]; - for rpaths.iter().advance |rpath| { + foreach rpath in rpaths.iter() { if set.insert(rpath.to_str()) { minimized.push(rpath.clone()); } diff --git a/src/librustc/driver/driver.rs b/src/librustc/driver/driver.rs index 3a315ef952d..f4fb65c2a83 100644 --- a/src/librustc/driver/driver.rs +++ b/src/librustc/driver/driver.rs @@ -508,7 +508,7 @@ pub fn pretty_print_input(sess: Session, cfg: ast::CrateConfig, input: &input, } pub fn get_os(triple: &str) -> Option { - for os_names.iter().advance |&(name, os)| { + foreach &(name, os) in os_names.iter() { if triple.contains(name) { return Some(os) } } None @@ -522,7 +522,7 @@ static os_names : &'static [(&'static str, session::os)] = &'static [ ("freebsd", session::os_freebsd)]; pub fn get_arch(triple: &str) -> Option { - for architecture_abis.iter().advance |&(arch, abi)| { + foreach &(arch, abi) in architecture_abis.iter() { if triple.contains(arch) { return Some(abi) } } None @@ -611,7 +611,7 @@ pub fn build_session_options(binary: @str, lint::deny, lint::forbid]; let mut lint_opts = ~[]; let lint_dict = lint::get_lint_dict(); - for lint_levels.iter().advance |level| { + foreach level in lint_levels.iter() { let level_name = lint::level_to_str(*level); // FIXME: #4318 Instead of to_ascii and to_str_ascii, could use @@ -620,7 +620,7 @@ pub fn build_session_options(binary: @str, let level_short = level_short.to_ascii().to_upper().to_str_ascii(); let flags = vec::append(getopts::opt_strs(matches, level_short), getopts::opt_strs(matches, level_name)); - for flags.iter().advance |lint_name| { + foreach lint_name in flags.iter() { let lint_name = lint_name.replace("-", "_"); match lint_dict.find_equiv(&lint_name) { None => { @@ -637,9 +637,9 @@ pub fn build_session_options(binary: @str, let mut debugging_opts = 0u; let debug_flags = getopts::opt_strs(matches, "Z"); let debug_map = session::debugging_opts_map(); - for debug_flags.iter().advance |debug_flag| { + foreach debug_flag in debug_flags.iter() { let mut this_bit = 0u; - for debug_map.iter().advance |tuple| { + foreach tuple in debug_map.iter() { let (name, bit) = match *tuple { (ref a, _, b) => (a, b) }; if name == debug_flag { this_bit = bit; break; } } diff --git a/src/librustc/front/test.rs b/src/librustc/front/test.rs index 8694c10053c..2730858d498 100644 --- a/src/librustc/front/test.rs +++ b/src/librustc/front/test.rs @@ -380,7 +380,7 @@ fn is_extra(cx: &TestCtxt) -> bool { fn mk_test_descs(cx: &TestCtxt) -> @ast::expr { debug!("building test vector from %u tests", cx.testfns.len()); let mut descs = ~[]; - for cx.testfns.iter().advance |test| { + foreach test in cx.testfns.iter() { descs.push(mk_test_desc_and_fn_rec(cx, test)); } diff --git a/src/librustc/metadata/creader.rs b/src/librustc/metadata/creader.rs index cbf1494e450..1ce6f664c27 100644 --- a/src/librustc/metadata/creader.rs +++ b/src/librustc/metadata/creader.rs @@ -65,7 +65,7 @@ struct cache_entry { fn dump_crates(crate_cache: &[cache_entry]) { debug!("resolved crates:"); - for crate_cache.iter().advance |entry| { + foreach entry in crate_cache.iter() { debug!("cnum: %?", entry.cnum); debug!("span: %?", entry.span); debug!("hash: %?", entry.hash); @@ -97,7 +97,7 @@ fn warn_if_multiple_versions(e: @mut Env, if matches.len() != 1u { diag.handler().warn( fmt!("using multiple versions of crate `%s`", name)); - for matches.iter().advance |match_| { + foreach match_ in matches.iter() { diag.span_note(match_.span, "used here"); let attrs = ~[ attr::mk_attr(attr::mk_list_item(@"link", @@ -125,7 +125,7 @@ struct Env { fn visit_crate(e: &Env, c: &ast::Crate) { let cstore = e.cstore; - for c.attrs.iter().filter(|m| "link_args" == m.name()).advance |a| { + foreach a in c.attrs.iter().filter(|m| "link_args" == m.name()) { match a.value_str() { Some(ref linkarg) => { cstore::add_used_link_args(cstore, *linkarg); @@ -194,7 +194,7 @@ fn visit_item(e: &Env, i: @ast::item) { ast::anonymous => { /* do nothing */ } } - for link_args.iter().advance |m| { + foreach m in link_args.iter() { match m.value_str() { Some(linkarg) => { cstore::add_used_link_args(cstore, linkarg); @@ -223,7 +223,7 @@ fn metas_with_ident(ident: @str, metas: ~[@ast::MetaItem]) fn existing_match(e: &Env, metas: &[@ast::MetaItem], hash: &str) -> Option { - for e.crate_cache.iter().advance |c| { + foreach c in e.crate_cache.iter() { if loader::metadata_matches(*c.metas, metas) && (hash.is_empty() || c.hash.as_slice() == hash) { return Some(c.cnum); @@ -306,7 +306,7 @@ fn resolve_crate_deps(e: @mut Env, cdata: @~[u8]) -> cstore::cnum_map { // numbers let mut cnum_map = HashMap::new(); let r = decoder::get_crate_deps(cdata); - for r.iter().advance |dep| { + foreach dep in r.iter() { let extrn_cnum = dep.cnum; let cname = dep.name; let cname_str = token::ident_to_str(&dep.name); diff --git a/src/librustc/metadata/cstore.rs b/src/librustc/metadata/cstore.rs index bc4236d3395..b69b2f8067d 100644 --- a/src/librustc/metadata/cstore.rs +++ b/src/librustc/metadata/cstore.rs @@ -84,7 +84,7 @@ pub fn have_crate_data(cstore: &CStore, cnum: ast::CrateNum) -> bool { pub fn iter_crate_data(cstore: &CStore, i: &fn(ast::CrateNum, @crate_metadata)) { - for cstore.metas.iter().advance |(&k, &v)| { + foreach (&k, &v) in cstore.metas.iter() { i(k, v); } } @@ -114,7 +114,7 @@ pub fn get_used_libraries<'a>(cstore: &'a CStore) -> &'a [@str] { } pub fn add_used_link_args(cstore: &mut CStore, args: &str) { - for args.split_iter(' ').advance |s| { + foreach s in args.split_iter(' ') { cstore.used_link_args.push(s.to_managed()); } } @@ -165,7 +165,7 @@ pub fn get_dep_hashes(cstore: &CStore) -> ~[@str] { }; debug!("sorted:"); - for sorted.iter().advance |x| { + foreach x in sorted.iter() { debug!(" hash[%s]: %s", x.name, x.hash); } diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs index 3a8b9a27f1c..60867585248 100644 --- a/src/librustc/metadata/decoder.rs +++ b/src/librustc/metadata/decoder.rs @@ -762,7 +762,7 @@ pub fn get_enum_variants(intr: @ident_interner, cdata: cmd, id: ast::NodeId, let mut infos: ~[@ty::VariantInfo] = ~[]; let variant_ids = enum_variant_ids(item, cdata); let mut disr_val = 0; - for variant_ids.iter().advance |did| { + foreach did in variant_ids.iter() { let item = find_item(did.node, items); let ctor_ty = item_type(ast::def_id { crate: cdata.cnum, node: id}, item, tcx, cdata); @@ -966,7 +966,7 @@ pub fn get_static_methods_if_impl(intr: @ident_interner, } let mut static_impl_methods = ~[]; - for impl_method_ids.iter().advance |impl_method_id| { + foreach impl_method_id in impl_method_ids.iter() { let impl_method_doc = lookup_item(impl_method_id.node, cdata.data); let family = item_family(impl_method_doc); match family { @@ -1155,7 +1155,7 @@ fn list_meta_items(intr: @ident_interner, meta_items: ebml::Doc, out: @io::Writer) { let r = get_meta_items(meta_items); - for r.iter().advance |mi| { + foreach mi in r.iter() { out.write_str(fmt!("%s\n", pprust::meta_item_to_str(*mi, intr))); } } @@ -1165,7 +1165,7 @@ fn list_crate_attributes(intr: @ident_interner, md: ebml::Doc, hash: &str, out.write_str(fmt!("=Crate Attributes (%s)=\n", hash)); let r = get_attributes(md); - for r.iter().advance |attr| { + foreach attr in r.iter() { out.write_str(fmt!("%s\n", pprust::attribute_to_str(attr, intr))); } @@ -1207,7 +1207,7 @@ fn list_crate_deps(data: @~[u8], out: @io::Writer) { out.write_str("=External Dependencies=\n"); let r = get_crate_deps(data); - for r.iter().advance |dep| { + foreach dep in r.iter() { out.write_str( fmt!("%d %s-%s-%s\n", dep.cnum, token::ident_to_str(&dep.name), dep.hash, dep.vers)); diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs index 90604cf36cb..9f67d922c11 100644 --- a/src/librustc/metadata/encoder.rs +++ b/src/librustc/metadata/encoder.rs @@ -120,7 +120,7 @@ fn encode_region_param(ecx: &EncodeContext, ebml_w: &mut writer::Encoder, it: @ast::item) { let opt_rp = ecx.tcx.region_paramd_items.find(&it.id); - for opt_rp.iter().advance |rp| { + foreach rp in opt_rp.iter() { ebml_w.start_tag(tag_region_param); rp.encode(ebml_w); ebml_w.end_tag(); @@ -193,7 +193,7 @@ fn encode_ty_type_param_defs(ebml_w: &mut writer::Encoder, tcx: ecx.tcx, abbrevs: tyencode::ac_use_abbrevs(ecx.type_abbrevs) }; - for params.iter().advance |param| { + foreach param in params.iter() { ebml_w.start_tag(tag); tyencode::enc_type_param_def(ebml_w.writer, ty_str_ctxt, param); ebml_w.end_tag(); @@ -250,7 +250,7 @@ fn encode_type(ecx: &EncodeContext, fn encode_transformed_self_ty(ecx: &EncodeContext, ebml_w: &mut writer::Encoder, opt_typ: Option) { - for opt_typ.iter().advance |&typ| { + foreach &typ in opt_typ.iter() { ebml_w.start_tag(tag_item_method_transformed_self_ty); write_type(ecx, ebml_w, typ); ebml_w.end_tag(); @@ -327,7 +327,7 @@ fn encode_enum_variant_info(ecx: &EncodeContext, let mut i = 0; let vi = ty::enum_variants(ecx.tcx, ast::def_id { crate: LOCAL_CRATE, node: id }); - for variants.iter().advance |variant| { + foreach variant in variants.iter() { let def_id = local_def(variant.node.id); index.push(entry {val: variant.node.id, pos: ebml_w.writer.tell()}); ebml_w.start_tag(tag_items_data_item); @@ -375,7 +375,7 @@ fn encode_path(ecx: &EncodeContext, ebml_w.start_tag(tag_path); ebml_w.wr_tagged_u32(tag_path_len, (path.len() + 1) as u32); - for path.iter().advance |pe| { + foreach pe in path.iter() { encode_path_elt(ecx, ebml_w, *pe); } encode_path_elt(ecx, ebml_w, name); @@ -405,8 +405,8 @@ fn encode_reexported_static_base_methods(ecx: &EncodeContext, -> bool { match ecx.tcx.inherent_impls.find(&exp.def_id) { Some(implementations) => { - for implementations.iter().advance |&base_impl| { - for base_impl.methods.iter().advance |&m| { + foreach &base_impl in implementations.iter() { + foreach &m in base_impl.methods.iter() { if m.explicit_self == ast::sty_static { encode_reexported_static_method(ecx, ebml_w, exp, m.def_id, m.ident); @@ -426,7 +426,7 @@ fn encode_reexported_static_trait_methods(ecx: &EncodeContext, -> bool { match ecx.tcx.trait_methods_cache.find(&exp.def_id) { Some(methods) => { - for methods.iter().advance |&m| { + foreach &m in methods.iter() { if m.explicit_self == ast::sty_static { encode_reexported_static_method(ecx, ebml_w, exp, m.def_id, m.ident); @@ -486,7 +486,7 @@ fn each_auxiliary_node_id(item: @item, callback: &fn(NodeId) -> bool) let mut continue = true; match item.node { item_enum(ref enum_def, _) => { - for enum_def.variants.iter().advance |variant| { + foreach variant in enum_def.variants.iter() { continue = callback(variant.node.id); if !continue { break @@ -518,7 +518,7 @@ fn encode_reexports(ecx: &EncodeContext, match ecx.reexports2.find(&id) { Some(ref exports) => { debug!("(encoding info for module) found reexports for %d", id); - for exports.iter().advance |exp| { + foreach exp in exports.iter() { debug!("(encoding info for module) reexport '%s' for %d", exp.name, id); ebml_w.start_tag(tag_items_data_item_reexport); @@ -553,7 +553,7 @@ fn encode_info_for_mod(ecx: &EncodeContext, debug!("(encoding info for module) encoding info for module ID %d", id); // Encode info about all the module children. - for md.items.iter().advance |item| { + foreach item in md.items.iter() { ebml_w.start_tag(tag_mod_child); ebml_w.wr_str(def_to_str(local_def(item.id))); ebml_w.end_tag(); @@ -663,7 +663,7 @@ fn encode_method_sort(ebml_w: &mut writer::Encoder, sort: char) { fn encode_provided_source(ebml_w: &mut writer::Encoder, source_opt: Option) { - for source_opt.iter().advance |source| { + foreach source in source_opt.iter() { ebml_w.start_tag(tag_item_method_provided_source); let s = def_to_str(*source); ebml_w.writer.write(s.as_bytes()); @@ -684,7 +684,7 @@ fn encode_info_for_struct(ecx: &EncodeContext, let tcx = ecx.tcx; /* We encode both private and public fields -- need to include private fields to get the offsets right */ - for fields.iter().advance |field| { + foreach field in fields.iter() { let (nm, vis) = match field.node.kind { named_field(nm, vis) => (nm, vis), unnamed_field => (special_idents::unnamed_field, inherited) @@ -771,7 +771,7 @@ fn encode_info_for_method(ecx: &EncodeContext, encode_path(ecx, ebml_w, impl_path, ast_map::path_name(m.ident)); - for ast_method_opt.iter().advance |ast_method| { + foreach ast_method in ast_method_opt.iter() { let num_params = tpt.generics.type_param_defs.len(); if num_params > 0u || is_default_impl || should_inline(ast_method.attrs) { @@ -881,7 +881,7 @@ fn encode_info_for_item(ecx: &EncodeContext, encode_path(ecx, ebml_w, path, ast_map::path_name(item.ident)); // Encode all the items in this module. - for fm.items.iter().advance |foreign_item| { + foreach foreign_item in fm.items.iter() { ebml_w.start_tag(tag_mod_child); ebml_w.wr_str(def_to_str(local_def(foreign_item.id))); ebml_w.end_tag(); @@ -908,7 +908,7 @@ fn encode_info_for_item(ecx: &EncodeContext, encode_family(ebml_w, 't'); encode_bounds_and_type(ebml_w, ecx, &lookup_item_type(tcx, def_id)); encode_name(ecx, ebml_w, item.ident); - for (*enum_definition).variants.iter().advance |v| { + foreach v in (*enum_definition).variants.iter() { encode_variant_id(ebml_w, local_def(v.node.id)); } (ecx.encode_inlined_item)(ecx, ebml_w, path, ii_item(item)); @@ -949,7 +949,7 @@ fn encode_info_for_item(ecx: &EncodeContext, /* Encode def_ids for each field and method for methods, write all the stuff get_trait_method needs to know*/ - for struct_def.fields.iter().advance |f| { + foreach f in struct_def.fields.iter() { match f.node.kind { named_field(ident, vis) => { ebml_w.start_tag(tag_item_field); @@ -1009,13 +1009,13 @@ fn encode_info_for_item(ecx: &EncodeContext, } _ => {} } - for imp.methods.iter().advance |method| { + foreach method in imp.methods.iter() { ebml_w.start_tag(tag_item_impl_method); let s = def_to_str(method.def_id); ebml_w.writer.write(s.as_bytes()); ebml_w.end_tag(); } - for opt_trait.iter().advance |ast_trait_ref| { + foreach ast_trait_ref in opt_trait.iter() { let trait_ref = ty::node_id_to_trait_ref( tcx, ast_trait_ref.ref_id); encode_trait_ref(ebml_w, ecx, trait_ref, tag_item_trait_ref); @@ -1034,7 +1034,7 @@ fn encode_info_for_item(ecx: &EncodeContext, // appear first in the impl structure, in the same order they do // in the ast. This is a little sketchy. let num_implemented_methods = ast_methods.len(); - for imp.methods.iter().enumerate().advance |(i, m)| { + foreach (i, m) in imp.methods.iter().enumerate() { let ast_method = if i < num_implemented_methods { Some(ast_methods[i]) } else { None }; @@ -1062,7 +1062,7 @@ fn encode_info_for_item(ecx: &EncodeContext, encode_trait_ref(ebml_w, ecx, trait_def.trait_ref, tag_item_trait_ref); encode_name(ecx, ebml_w, item.ident); encode_attributes(ebml_w, item.attrs); - for ty::trait_method_def_ids(tcx, def_id).iter().advance |&method_def_id| { + foreach &method_def_id in ty::trait_method_def_ids(tcx, def_id).iter() { ebml_w.start_tag(tag_item_trait_method); encode_def_id(ebml_w, method_def_id); ebml_w.end_tag(); @@ -1072,7 +1072,7 @@ fn encode_info_for_item(ecx: &EncodeContext, ebml_w.end_tag(); } encode_path(ecx, ebml_w, path, ast_map::path_name(item.ident)); - for super_traits.iter().advance |ast_trait_ref| { + foreach ast_trait_ref in super_traits.iter() { let trait_ref = ty::node_id_to_trait_ref(ecx.tcx, ast_trait_ref.ref_id); encode_trait_ref(ebml_w, ecx, trait_ref, tag_item_super_trait_ref); } @@ -1080,7 +1080,7 @@ fn encode_info_for_item(ecx: &EncodeContext, // Now output the method info for each method. let r = ty::trait_method_def_ids(tcx, def_id); - for r.iter().enumerate().advance |(i, &method_def_id)| { + foreach (i, &method_def_id) in r.iter().enumerate() { assert_eq!(method_def_id.crate, ast::LOCAL_CRATE); let method_ty = ty::method(tcx, method_def_id); @@ -1257,13 +1257,13 @@ fn create_index( -> ~[@~[entry]] { let mut buckets: ~[@mut ~[entry]] = ~[]; for uint::range(0u, 256u) |_i| { buckets.push(@mut ~[]); }; - for index.iter().advance |elt| { + foreach elt in index.iter() { let h = elt.val.hash() as uint; buckets[h % 256].push((*elt).clone()); } let mut buckets_frozen = ~[]; - for buckets.iter().advance |bucket| { + foreach bucket in buckets.iter() { buckets_frozen.push(@/*bad*/(**bucket).clone()); } return buckets_frozen; @@ -1277,10 +1277,10 @@ fn encode_index( ebml_w.start_tag(tag_index); let mut bucket_locs: ~[uint] = ~[]; ebml_w.start_tag(tag_index_buckets); - for buckets.iter().advance |bucket| { + foreach bucket in buckets.iter() { bucket_locs.push(ebml_w.writer.tell()); ebml_w.start_tag(tag_index_buckets_bucket); - for (**bucket).iter().advance |elt| { + foreach elt in (**bucket).iter() { ebml_w.start_tag(tag_index_buckets_bucket_elt); assert!(elt.pos < 0xffff_ffff); writer.write_be_u32(elt.pos as u32); @@ -1291,7 +1291,7 @@ fn encode_index( } ebml_w.end_tag(); ebml_w.start_tag(tag_index_table); - for bucket_locs.iter().advance |pos| { + foreach pos in bucket_locs.iter() { assert!(*pos < 0xffff_ffff); writer.write_be_u32(*pos as u32); } @@ -1337,7 +1337,7 @@ fn encode_meta_item(ebml_w: &mut writer::Encoder, mi: @MetaItem) { ebml_w.start_tag(tag_meta_item_name); ebml_w.writer.write(name.as_bytes()); ebml_w.end_tag(); - for items.iter().advance |inner_item| { + foreach inner_item in items.iter() { encode_meta_item(ebml_w, *inner_item); } ebml_w.end_tag(); @@ -1347,7 +1347,7 @@ fn encode_meta_item(ebml_w: &mut writer::Encoder, mi: @MetaItem) { fn encode_attributes(ebml_w: &mut writer::Encoder, attrs: &[Attribute]) { ebml_w.start_tag(tag_attributes); - for attrs.iter().advance |attr| { + foreach attr in attrs.iter() { ebml_w.start_tag(tag_attribute); encode_meta_item(ebml_w, attr.node.value); ebml_w.end_tag(); @@ -1389,7 +1389,7 @@ fn synthesize_crate_attrs(ecx: &EncodeContext, let mut attrs = ~[]; let mut found_link_attr = false; - for crate.attrs.iter().advance |attr| { + foreach attr in crate.attrs.iter() { attrs.push( if "link" != attr.name() { *attr @@ -1431,7 +1431,7 @@ fn encode_crate_deps(ecx: &EncodeContext, // Sanity-check the crate numbers let mut expected_cnum = 1; - for deps.iter().advance |n| { + foreach n in deps.iter() { assert_eq!(n.cnum, expected_cnum); expected_cnum += 1; } @@ -1445,7 +1445,7 @@ fn encode_crate_deps(ecx: &EncodeContext, // but is enough to get transitive crate dependencies working. ebml_w.start_tag(tag_crate_deps); let r = get_ordered_deps(ecx, cstore); - for r.iter().advance |dep| { + foreach dep in r.iter() { encode_crate_dep(ecx, ebml_w, *dep); } ebml_w.end_tag(); @@ -1482,7 +1482,7 @@ fn encode_link_args(ecx: &EncodeContext, ebml_w: &mut writer::Encoder) { ebml_w.start_tag(tag_link_args); let link_args = cstore::get_used_link_args(ecx.cstore); - for link_args.iter().advance |link_arg| { + foreach link_arg in link_args.iter() { ebml_w.start_tag(tag_link_args_arg); ebml_w.writer.write_str(link_arg.to_str()); ebml_w.end_tag(); @@ -1496,7 +1496,7 @@ fn encode_misc_info(ecx: &EncodeContext, ebml_w: &mut writer::Encoder) { ebml_w.start_tag(tag_misc_info); ebml_w.start_tag(tag_misc_info_crate_items); - for crate.module.items.iter().advance |&item| { + foreach &item in crate.module.items.iter() { ebml_w.start_tag(tag_mod_child); ebml_w.wr_str(def_to_str(local_def(item.id))); ebml_w.end_tag(); @@ -1632,7 +1632,7 @@ pub fn encode_metadata(parms: EncodeParams, crate: &Crate) -> ~[u8] { ecx.stats.total_bytes = *wr.pos; if (tcx.sess.meta_stats()) { - for wr.bytes.iter().advance |e| { + foreach e in wr.bytes.iter() { if *e == 0 { ecx.stats.zero_bytes += 1; } diff --git a/src/librustc/metadata/filesearch.rs b/src/librustc/metadata/filesearch.rs index 7ac215e3949..9891adc3b1b 100644 --- a/src/librustc/metadata/filesearch.rs +++ b/src/librustc/metadata/filesearch.rs @@ -91,7 +91,7 @@ pub fn search(filesearch: @FileSearch, pick: pick) -> Option { for filesearch.for_each_lib_search_path() |lib_search_path| { debug!("searching %s", lib_search_path.to_str()); let r = os::list_dir_path(lib_search_path); - for r.iter().advance |path| { + foreach path in r.iter() { debug!("testing %s", path.to_str()); let maybe_picked = pick(path); if maybe_picked.is_some() { diff --git a/src/librustc/metadata/loader.rs b/src/librustc/metadata/loader.rs index 1037e3a7628..89a53df7316 100644 --- a/src/librustc/metadata/loader.rs +++ b/src/librustc/metadata/loader.rs @@ -128,7 +128,7 @@ fn find_library_crate_aux( cx.diag.span_err( cx.span, fmt!("multiple matching crates for `%s`", crate_name)); cx.diag.handler().note("candidates:"); - for matches.iter().advance |pair| { + foreach pair in matches.iter() { let ident = pair.first(); let data = pair.second(); cx.diag.handler().note(fmt!("path: %s", ident)); @@ -142,7 +142,7 @@ fn find_library_crate_aux( } pub fn crate_name_from_metas(metas: &[@ast::MetaItem]) -> @str { - for metas.iter().advance |m| { + foreach m in metas.iter() { match m.name_str_pair() { Some((name, s)) if "name" == name => { return s; } _ => {} @@ -155,7 +155,7 @@ pub fn note_linkage_attrs(intr: @ident_interner, diag: @span_handler, attrs: ~[ast::Attribute]) { let r = attr::find_linkage_metas(attrs); - for r.iter().advance |mi| { + foreach mi in r.iter() { diag.handler().note(fmt!("meta: %s", pprust::meta_item_to_str(*mi,intr))); } } diff --git a/src/librustc/metadata/tyencode.rs b/src/librustc/metadata/tyencode.rs index a1cb1bf6848..b80af865e43 100644 --- a/src/librustc/metadata/tyencode.rs +++ b/src/librustc/metadata/tyencode.rs @@ -123,7 +123,7 @@ fn enc_substs(w: @io::Writer, cx: @ctxt, substs: &ty::substs) { enc_region_substs(w, cx, &substs.regions); do enc_opt(w, substs.self_ty) |t| { enc_ty(w, cx, t) } w.write_char('['); - for substs.tps.iter().advance |t| { enc_ty(w, cx, *t); } + foreach t in substs.tps.iter() { enc_ty(w, cx, *t); } w.write_char(']'); } @@ -134,7 +134,7 @@ fn enc_region_substs(w: @io::Writer, cx: @ctxt, substs: &ty::RegionSubsts) { } ty::NonerasedRegions(ref regions) => { w.write_char('n'); - for regions.iter().advance |&r| { + foreach &r in regions.iter() { enc_region(w, cx, r); } w.write_char('.'); @@ -288,7 +288,7 @@ fn enc_sty(w: @io::Writer, cx: @ctxt, st: &ty::sty) { } ty::ty_tup(ref ts) => { w.write_str(&"T["); - for ts.iter().advance |t| { enc_ty(w, cx, *t); } + foreach t in ts.iter() { enc_ty(w, cx, *t); } w.write_char(']'); } ty::ty_box(mt) => { w.write_char('@'); enc_mt(w, cx, mt); } @@ -404,7 +404,7 @@ fn enc_closure_ty(w: @io::Writer, cx: @ctxt, ft: &ty::ClosureTy) { fn enc_fn_sig(w: @io::Writer, cx: @ctxt, fsig: &ty::FnSig) { w.write_char('['); - for fsig.inputs.iter().advance |ty| { + foreach ty in fsig.inputs.iter() { enc_ty(w, cx, *ty); } w.write_char(']'); @@ -421,7 +421,7 @@ fn enc_bounds(w: @io::Writer, cx: @ctxt, bs: &ty::ParamBounds) { } } - for bs.trait_bounds.iter().advance |&tp| { + foreach &tp in bs.trait_bounds.iter() { w.write_char('I'); enc_trait_ref(w, cx, tp); } diff --git a/src/librustc/middle/astencode.rs b/src/librustc/middle/astencode.rs index 31f0f67caf2..74ef9612500 100644 --- a/src/librustc/middle/astencode.rs +++ b/src/librustc/middle/astencode.rs @@ -855,7 +855,7 @@ fn encode_side_tables_for_id(ecx: &e::EncodeContext, { let r = tcx.def_map.find(&id); - for r.iter().advance |def| { + foreach def in r.iter() { do ebml_w.tag(c::tag_table_def) |ebml_w| { ebml_w.id(id); do ebml_w.tag(c::tag_table_val) |ebml_w| { @@ -867,7 +867,7 @@ fn encode_side_tables_for_id(ecx: &e::EncodeContext, { let r = tcx.node_types.find(&(id as uint)); - for r.iter().advance |&ty| { + foreach &ty in r.iter() { do ebml_w.tag(c::tag_table_node_type) |ebml_w| { ebml_w.id(id); do ebml_w.tag(c::tag_table_val) |ebml_w| { @@ -879,7 +879,7 @@ fn encode_side_tables_for_id(ecx: &e::EncodeContext, { let r = tcx.node_type_substs.find(&id); - for r.iter().advance |tys| { + foreach tys in r.iter() { do ebml_w.tag(c::tag_table_node_type_subst) |ebml_w| { ebml_w.id(id); do ebml_w.tag(c::tag_table_val) |ebml_w| { @@ -891,7 +891,7 @@ fn encode_side_tables_for_id(ecx: &e::EncodeContext, { let r = tcx.freevars.find(&id); - for r.iter().advance |&fv| { + foreach &fv in r.iter() { do ebml_w.tag(c::tag_table_freevars) |ebml_w| { ebml_w.id(id); do ebml_w.tag(c::tag_table_val) |ebml_w| { @@ -906,7 +906,7 @@ fn encode_side_tables_for_id(ecx: &e::EncodeContext, let lid = ast::def_id { crate: ast::LOCAL_CRATE, node: id }; { let r = tcx.tcache.find(&lid); - for r.iter().advance |&tpbt| { + foreach &tpbt in r.iter() { do ebml_w.tag(c::tag_table_tcache) |ebml_w| { ebml_w.id(id); do ebml_w.tag(c::tag_table_val) |ebml_w| { @@ -918,7 +918,7 @@ fn encode_side_tables_for_id(ecx: &e::EncodeContext, { let r = tcx.ty_param_defs.find(&id); - for r.iter().advance |&type_param_def| { + foreach &type_param_def in r.iter() { do ebml_w.tag(c::tag_table_param_defs) |ebml_w| { ebml_w.id(id); do ebml_w.tag(c::tag_table_val) |ebml_w| { @@ -930,7 +930,7 @@ fn encode_side_tables_for_id(ecx: &e::EncodeContext, { let r = maps.method_map.find(&id); - for r.iter().advance |&mme| { + foreach &mme in r.iter() { do ebml_w.tag(c::tag_table_method_map) |ebml_w| { ebml_w.id(id); do ebml_w.tag(c::tag_table_val) |ebml_w| { @@ -942,7 +942,7 @@ fn encode_side_tables_for_id(ecx: &e::EncodeContext, { let r = maps.vtable_map.find(&id); - for r.iter().advance |&dr| { + foreach &dr in r.iter() { do ebml_w.tag(c::tag_table_vtable_map) |ebml_w| { ebml_w.id(id); do ebml_w.tag(c::tag_table_val) |ebml_w| { @@ -954,7 +954,7 @@ fn encode_side_tables_for_id(ecx: &e::EncodeContext, { let r = tcx.adjustments.find(&id); - for r.iter().advance |adj| { + foreach adj in r.iter() { do ebml_w.tag(c::tag_table_adjustments) |ebml_w| { ebml_w.id(id); do ebml_w.tag(c::tag_table_val) |ebml_w| { @@ -966,7 +966,7 @@ fn encode_side_tables_for_id(ecx: &e::EncodeContext, { let r = maps.capture_map.find(&id); - for r.iter().advance |&cap_vars| { + foreach &cap_vars in r.iter() { do ebml_w.tag(c::tag_table_capture_map) |ebml_w| { ebml_w.id(id); do ebml_w.tag(c::tag_table_val) |ebml_w| { diff --git a/src/librustc/middle/borrowck/check_loans.rs b/src/librustc/middle/borrowck/check_loans.rs index 7fde3f924ca..b9f9d7c45f5 100644 --- a/src/librustc/middle/borrowck/check_loans.rs +++ b/src/librustc/middle/borrowck/check_loans.rs @@ -118,7 +118,7 @@ impl<'self> CheckLoanCtxt<'self> { //! given `loan_path` for self.each_in_scope_loan(scope_id) |loan| { - for loan.restrictions.iter().advance |restr| { + foreach restr in loan.restrictions.iter() { if restr.loan_path == loan_path { if !op(loan, restr) { return false; @@ -152,7 +152,7 @@ impl<'self> CheckLoanCtxt<'self> { debug!("new_loan_indices = %?", new_loan_indices); for self.each_issued_loan(scope_id) |issued_loan| { - for new_loan_indices.iter().advance |&new_loan_index| { + foreach &new_loan_index in new_loan_indices.iter() { let new_loan = &self.all_loans[new_loan_index]; self.report_error_if_loans_conflict(issued_loan, new_loan); } @@ -210,7 +210,7 @@ impl<'self> CheckLoanCtxt<'self> { }; debug!("illegal_if=%?", illegal_if); - for loan1.restrictions.iter().advance |restr| { + foreach restr in loan1.restrictions.iter() { if !restr.set.intersects(illegal_if) { loop; } if restr.loan_path != loan2.loan_path { loop; } @@ -639,7 +639,7 @@ fn check_loans_in_fn<'a>(fk: &visit::fn_kind, closure_id: ast::NodeId, span: span) { let cap_vars = this.bccx.capture_map.get(&closure_id); - for cap_vars.iter().advance |cap_var| { + foreach cap_var in cap_vars.iter() { let var_id = ast_util::def_id_of_def(cap_var.def).node; let var_path = @LpVar(var_id); this.check_if_path_is_moved(closure_id, span, @@ -700,7 +700,7 @@ fn check_loans_in_expr<'a>(expr: @ast::expr, let cmt = this.bccx.cat_expr_unadjusted(expr); debug!("path cmt=%s", cmt.repr(this.tcx())); let r = opt_loan_path(cmt); - for r.iter().advance |&lp| { + foreach &lp in r.iter() { this.check_if_path_is_moved(expr.id, expr.span, MovedInUse, lp); } } diff --git a/src/librustc/middle/borrowck/gather_loans/gather_moves.rs b/src/librustc/middle/borrowck/gather_loans/gather_moves.rs index e942efbc534..7c24b30743d 100644 --- a/src/librustc/middle/borrowck/gather_loans/gather_moves.rs +++ b/src/librustc/middle/borrowck/gather_loans/gather_moves.rs @@ -70,7 +70,7 @@ pub fn gather_captures(bccx: @BorrowckCtxt, move_data: &mut MoveData, closure_expr: @ast::expr) { let captured_vars = bccx.capture_map.get(&closure_expr.id); - for captured_vars.iter().advance |captured_var| { + foreach captured_var in captured_vars.iter() { match captured_var.mode { moves::CapMove => { let fvar_id = ast_util::def_id_of_def(captured_var.def).node; diff --git a/src/librustc/middle/borrowck/gather_loans/mod.rs b/src/librustc/middle/borrowck/gather_loans/mod.rs index dc120516dea..4c4a5648c8b 100644 --- a/src/librustc/middle/borrowck/gather_loans/mod.rs +++ b/src/librustc/middle/borrowck/gather_loans/mod.rs @@ -187,7 +187,7 @@ fn gather_loans_in_expr(ex: @ast::expr, { let r = ex.get_callee_id(); - for r.iter().advance |callee_id| { + foreach callee_id in r.iter() { this.id_range.add(*callee_id); } } @@ -195,7 +195,7 @@ fn gather_loans_in_expr(ex: @ast::expr, // If this expression is borrowed, have to ensure it remains valid: { let r = tcx.adjustments.find(&ex.id); - for r.iter().advance |&adjustments| { + foreach &adjustments in r.iter() { this.guarantee_adjustments(ex, *adjustments); } } @@ -238,8 +238,8 @@ fn gather_loans_in_expr(ex: @ast::expr, ast::expr_match(ex_v, ref arms) => { let cmt = this.bccx.cat_expr(ex_v); - for arms.iter().advance |arm| { - for arm.pats.iter().advance |pat| { + foreach arm in arms.iter() { + foreach pat in arm.pats.iter() { this.gather_pat(cmt, *pat, Some((arm.body.id, ex.id))); } } @@ -617,7 +617,7 @@ impl GatherLoanCtxt { */ let mc_ctxt = self.bccx.mc_ctxt(); - for decl.inputs.iter().advance |arg| { + foreach arg in decl.inputs.iter() { let arg_ty = ty::node_id_to_type(self.tcx(), arg.pat.id); let arg_cmt = mc_ctxt.cat_rvalue( diff --git a/src/librustc/middle/borrowck/gather_loans/restrictions.rs b/src/librustc/middle/borrowck/gather_loans/restrictions.rs index e568da5eedf..9e4e85c3a5e 100644 --- a/src/librustc/middle/borrowck/gather_loans/restrictions.rs +++ b/src/librustc/middle/borrowck/gather_loans/restrictions.rs @@ -139,7 +139,7 @@ impl RestrictionsContext { // static errors. For example, if there is code like // // let v = @mut ~[1, 2, 3]; - // for v.iter().advance |e| { + // foreach e in v.iter() { // v.push(e + 1); // } // @@ -151,7 +151,7 @@ impl RestrictionsContext { // // let v = @mut ~[1, 2, 3]; // let w = v; - // for v.iter().advance |e| { + // foreach e in v.iter() { // w.push(e + 1); // } // @@ -164,7 +164,7 @@ impl RestrictionsContext { // } // ... // let v: &V = ...; - // for v.get_list().iter().advance |e| { + // foreach e in v.get_list().iter() { // v.get_list().push(e + 1); // } match opt_loan_path(cmt_base) { diff --git a/src/librustc/middle/borrowck/mod.rs b/src/librustc/middle/borrowck/mod.rs index 13ee902390b..8ddf1a6c1d8 100644 --- a/src/librustc/middle/borrowck/mod.rs +++ b/src/librustc/middle/borrowck/mod.rs @@ -139,7 +139,7 @@ fn borrowck_fn(fk: &visit::fn_kind, LoanDataFlowOperator, id_range, all_loans.len()); - for all_loans.iter().enumerate().advance |(loan_idx, loan)| { + foreach (loan_idx, loan) in all_loans.iter().enumerate() { loan_dfcx.add_gen(loan.gen_scope, loan_idx); loan_dfcx.add_kill(loan.kill_scope, loan_idx); } diff --git a/src/librustc/middle/borrowck/move_data.rs b/src/librustc/middle/borrowck/move_data.rs index 223b18bfa7e..07c8b7ad06c 100644 --- a/src/librustc/middle/borrowck/move_data.rs +++ b/src/librustc/middle/borrowck/move_data.rs @@ -371,22 +371,22 @@ impl MoveData { * killed by scoping. See `doc.rs` for more details. */ - for self.moves.iter().enumerate().advance |(i, move)| { + foreach (i, move) in self.moves.iter().enumerate() { dfcx_moves.add_gen(move.id, i); } - for self.var_assignments.iter().enumerate().advance |(i, assignment)| { + foreach (i, assignment) in self.var_assignments.iter().enumerate() { dfcx_assign.add_gen(assignment.id, i); self.kill_moves(assignment.path, assignment.id, dfcx_moves); } - for self.path_assignments.iter().advance |assignment| { + foreach assignment in self.path_assignments.iter() { self.kill_moves(assignment.path, assignment.id, dfcx_moves); } // Kill all moves related to a variable `x` when it goes out // of scope: - for self.paths.iter().advance |path| { + foreach path in self.paths.iter() { match *path.loan_path { LpVar(id) => { let kill_id = tcx.region_maps.encl_scope(id); @@ -398,7 +398,7 @@ impl MoveData { } // Kill all assignments when the variable goes out of scope: - for self.var_assignments.iter().enumerate().advance |(assignment_index, assignment)| { + foreach (assignment_index, assignment) in self.var_assignments.iter().enumerate() { match *self.path(assignment.path).loan_path { LpVar(id) => { let kill_id = tcx.region_maps.encl_scope(id); @@ -557,7 +557,7 @@ impl FlowedMoveData { loop; } - for opt_loan_path_index.iter().advance |&loan_path_index| { + foreach &loan_path_index in opt_loan_path_index.iter() { for self.move_data.each_base_path(moved_path) |p| { if p == loan_path_index { // Scenario 3: some extension of `loan_path` diff --git a/src/librustc/middle/cfg/construct.rs b/src/librustc/middle/cfg/construct.rs index a262aa5445e..c1a44cc56da 100644 --- a/src/librustc/middle/cfg/construct.rs +++ b/src/librustc/middle/cfg/construct.rs @@ -53,7 +53,7 @@ pub fn construct(tcx: ty::ctxt, impl CFGBuilder { fn block(&mut self, blk: &ast::Block, pred: CFGIndex) -> CFGIndex { let mut stmts_exit = pred; - for blk.stmts.iter().advance |&stmt| { + foreach &stmt in blk.stmts.iter() { stmts_exit = self.stmt(stmt, stmts_exit); } @@ -151,7 +151,7 @@ impl CFGBuilder { self.pat(pats[0], pred) } else { let collect = self.add_dummy_node([]); - for pats.iter().advance |&pat| { + foreach &pat in pats.iter() { let pat_exit = self.pat(pat, pred); self.add_contained_edge(pat_exit, collect); } @@ -297,7 +297,7 @@ impl CFGBuilder { let expr_exit = self.add_node(expr.id, []); let mut guard_exit = discr_exit; - for arms.iter().advance |arm| { + foreach arm in arms.iter() { guard_exit = self.opt_expr(arm.guard, guard_exit); // 2 let pats_exit = self.pats_any(arm.pats, guard_exit); // 3 let body_exit = self.block(&arm.body, pats_exit); // 4 @@ -460,7 +460,7 @@ impl CFGBuilder { assert!(!self.exit_map.contains_key(&id)); let node = self.graph.add_node(CFGNodeData {id: id}); self.exit_map.insert(id, node); - for preds.iter().advance |&pred| { + foreach &pred in preds.iter() { self.add_contained_edge(pred, node); } node @@ -498,7 +498,7 @@ impl CFGBuilder { Some(_) => { match self.tcx.def_map.find(&expr.id) { Some(&ast::def_label(loop_id)) => { - for self.loop_scopes.iter().advance |l| { + foreach l in self.loop_scopes.iter() { if l.loop_id == loop_id { return *l; } diff --git a/src/librustc/middle/check_const.rs b/src/librustc/middle/check_const.rs index bb6736b3de9..11d2268725d 100644 --- a/src/librustc/middle/check_const.rs +++ b/src/librustc/middle/check_const.rs @@ -47,8 +47,8 @@ pub fn check_item(sess: Session, check_item_recursion(sess, ast_map, def_map, it); } item_enum(ref enum_definition, _) => { - for (*enum_definition).variants.iter().advance |var| { - for var.node.disr_expr.iter().advance |ex| { + foreach var in (*enum_definition).variants.iter() { + foreach ex in var.node.disr_expr.iter() { (v.visit_expr)(*ex, (true, v)); } } diff --git a/src/librustc/middle/check_match.rs b/src/librustc/middle/check_match.rs index 987443de30d..e52c0b949dc 100644 --- a/src/librustc/middle/check_match.rs +++ b/src/librustc/middle/check_match.rs @@ -55,7 +55,7 @@ pub fn check_expr(cx: @MatchCheckCtxt, ex: @expr, (s, v): ((), visit::vt<()>)) { match ex.node { expr_match(scrut, ref arms) => { // First, check legality of move bindings. - for arms.iter().advance |arm| { + foreach arm in arms.iter() { check_legality_of_move_bindings(cx, arm.guard.is_some(), arm.pats); @@ -100,8 +100,8 @@ pub fn check_expr(cx: @MatchCheckCtxt, ex: @expr, (s, v): ((), visit::vt<()>)) { // Check for unreachable patterns pub fn check_arms(cx: &MatchCheckCtxt, arms: &[arm]) { let mut seen = ~[]; - for arms.iter().advance |arm| { - for arm.pats.iter().advance |pat| { + foreach arm in arms.iter() { + foreach pat in arm.pats.iter() { // Check that we do not match against a static NaN (#6804) let pat_matches_nan: &fn(@pat) -> bool = |p| { @@ -243,7 +243,7 @@ pub fn is_useful(cx: &MatchCheckCtxt, m: &matrix, v: &[@pat]) -> useful { } } ty::ty_enum(eid, _) => { - for (*ty::enum_variants(cx.tcx, eid)).iter().advance |va| { + foreach va in (*ty::enum_variants(cx.tcx, eid)).iter() { match is_useful_specialized(cx, m, v, variant(va.id), va.args.len(), left_ty) { not_useful => (), @@ -365,16 +365,16 @@ pub fn missing_ctor(cx: &MatchCheckCtxt, match ty::get(left_ty).sty { ty::ty_box(_) | ty::ty_uniq(_) | ty::ty_rptr(*) | ty::ty_tup(_) | ty::ty_struct(*) => { - for m.iter().advance |r| { + foreach r in m.iter() { if !is_wild(cx, r[0]) { return None; } } return Some(single); } ty::ty_enum(eid, _) => { let mut found = ~[]; - for m.iter().advance |r| { + foreach r in m.iter() { let r = pat_ctor_id(cx, r[0]); - for r.iter().advance |id| { + foreach id in r.iter() { if !found.contains(id) { found.push(*id); } @@ -382,7 +382,7 @@ pub fn missing_ctor(cx: &MatchCheckCtxt, } let variants = ty::enum_variants(cx.tcx, eid); if found.len() != (*variants).len() { - for (*variants).iter().advance |v| { + foreach v in (*variants).iter() { if !found.iter().any(|x| x == &(variant(v.id))) { return Some(variant(v.id)); } @@ -394,7 +394,7 @@ pub fn missing_ctor(cx: &MatchCheckCtxt, ty::ty_bool => { let mut true_found = false; let mut false_found = false; - for m.iter().advance |r| { + foreach r in m.iter() { match pat_ctor_id(cx, r[0]) { None => (), Some(val(const_bool(true))) => true_found = true, @@ -434,7 +434,7 @@ pub fn missing_ctor(cx: &MatchCheckCtxt, let mut found_slice = false; let mut next = 0; let mut missing = None; - for sorted_vec_lens.iter().advance |&(length, slice)| { + foreach &(length, slice) in sorted_vec_lens.iter() { if length != next { missing = Some(next); break; @@ -781,7 +781,7 @@ pub fn check_fn(cx: &MatchCheckCtxt, (s, v): ((), visit::vt<()>)) { visit::visit_fn(kind, decl, body, sp, id, (s, v)); - for decl.inputs.iter().advance |input| { + foreach input in decl.inputs.iter() { if is_refutable(cx, input.pat) { cx.tcx.sess.span_err(input.pat.span, "refutable pattern in function argument"); @@ -834,7 +834,7 @@ pub fn check_legality_of_move_bindings(cx: &MatchCheckCtxt, let def_map = tcx.def_map; let mut by_ref_span = None; let mut any_by_move = false; - for pats.iter().advance |pat| { + foreach pat in pats.iter() { do pat_bindings(def_map, *pat) |bm, id, span, _path| { match bm { bind_by_ref(_) => { @@ -871,7 +871,7 @@ pub fn check_legality_of_move_bindings(cx: &MatchCheckCtxt, }; if !any_by_move { return; } // pointless micro-optimization - for pats.iter().advance |pat| { + foreach pat in pats.iter() { for walk_pat(*pat) |p| { if pat_is_binding(def_map, p) { match p.node { diff --git a/src/librustc/middle/const_eval.rs b/src/librustc/middle/const_eval.rs index cdf887f4643..957a59cdaa0 100644 --- a/src/librustc/middle/const_eval.rs +++ b/src/librustc/middle/const_eval.rs @@ -176,7 +176,7 @@ pub fn lookup_variant_by_id(tcx: ty::ctxt, variant_def: ast::def_id) -> Option<@expr> { fn variant_expr(variants: &[ast::variant], id: ast::NodeId) -> Option<@expr> { - for variants.iter().advance |variant| { + foreach variant in variants.iter() { if variant.node.id == id { return variant.node.disr_expr; } diff --git a/src/librustc/middle/dataflow.rs b/src/librustc/middle/dataflow.rs index 8bc2c145eb3..44ebca8c1bf 100644 --- a/src/librustc/middle/dataflow.rs +++ b/src/librustc/middle/dataflow.rs @@ -266,7 +266,7 @@ impl DataFlowContext { f: &fn(uint) -> bool) -> bool { //! Helper for iterating over the bits in a bit set. - for words.iter().enumerate().advance |(word_index, &word)| { + foreach (word_index, &word) in words.iter().enumerate() { if word != 0 { let base_index = word_index * uint::bits; for uint::range(0, uint::bits) |offset| { @@ -391,7 +391,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { self.merge_with_entry_set(blk.id, in_out); - for blk.stmts.iter().advance |&stmt| { + foreach &stmt in blk.stmts.iter() { self.walk_stmt(stmt, in_out, loop_scopes); } @@ -512,7 +512,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { loop_kind: ForLoop, break_bits: reslice(in_out).to_owned() }); - for decl.inputs.iter().advance |input| { + foreach input in decl.inputs.iter() { self.walk_pat(input.pat, func_bits, loop_scopes); } self.walk_block(body, func_bits, loop_scopes); @@ -631,7 +631,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { // together the bits from each arm: self.reset(in_out); - for arms.iter().advance |arm| { + foreach arm in arms.iter() { // in_out reflects the discr and all guards to date self.walk_opt_expr(arm.guard, guards, loop_scopes); @@ -706,7 +706,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { } ast::expr_struct(_, ref fields, with_expr) => { - for fields.iter().advance |field| { + foreach field in fields.iter() { self.walk_expr(field.expr, in_out, loop_scopes); } self.walk_opt_expr(with_expr, in_out, loop_scopes); @@ -767,10 +767,10 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { } ast::expr_inline_asm(ref inline_asm) => { - for inline_asm.inputs.iter().advance |&(_, expr)| { + foreach &(_, expr) in inline_asm.inputs.iter() { self.walk_expr(expr, in_out, loop_scopes); } - for inline_asm.outputs.iter().advance |&(_, expr)| { + foreach &(_, expr) in inline_asm.outputs.iter() { self.walk_expr(expr, in_out, loop_scopes); } } @@ -838,7 +838,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { exprs: &[@ast::expr], in_out: &mut [uint], loop_scopes: &mut ~[LoopScope]) { - for exprs.iter().advance |&expr| { + foreach &expr in exprs.iter() { self.walk_expr(expr, in_out, loop_scopes); } } @@ -847,7 +847,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { opt_expr: Option<@ast::expr>, in_out: &mut [uint], loop_scopes: &mut ~[LoopScope]) { - for opt_expr.iter().advance |&expr| { + foreach &expr in opt_expr.iter() { self.walk_expr(expr, in_out, loop_scopes); } } @@ -900,7 +900,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { // alternatives, so we must treat this like an N-way select // statement. let initial_state = reslice(in_out).to_owned(); - for pats.iter().advance |&pat| { + foreach &pat in pats.iter() { let mut temp = initial_state.clone(); self.walk_pat(pat, temp, loop_scopes); join_bits(&self.dfcx.oper, temp, in_out); @@ -948,7 +948,7 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> { fn reset(&mut self, bits: &mut [uint]) { let e = if self.dfcx.oper.initial_value() {uint::max_value} else {0}; - for bits.mut_iter().advance |b| { *b = e; } + foreach b in bits.mut_iter() { *b = e; } } fn add_to_entry_set(&mut self, id: ast::NodeId, pred_bits: &[uint]) { @@ -996,7 +996,7 @@ fn bits_to_str(words: &[uint]) -> ~str { // Note: this is a little endian printout of bytes. - for words.iter().advance |&word| { + foreach &word in words.iter() { let mut v = word; for uint::range(0, uint::bytes) |_| { result.push_char(sep); diff --git a/src/librustc/middle/entry.rs b/src/librustc/middle/entry.rs index 17d7b6e828e..73ead06bf07 100644 --- a/src/librustc/middle/entry.rs +++ b/src/librustc/middle/entry.rs @@ -137,7 +137,7 @@ fn configure_main(ctxt: @mut EntryContext) { but you have one or more functions named 'main' that are not \ defined at the crate level. Either move the definition or \ attach the `#[main]` attribute to override this behavior."); - for this.non_main_fns.iter().advance |&(_, span)| { + foreach &(_, span) in this.non_main_fns.iter() { this.session.span_note(span, "here is a function named 'main'"); } } diff --git a/src/librustc/middle/graph.rs b/src/librustc/middle/graph.rs index e37df6eda2d..afb0254ac1b 100644 --- a/src/librustc/middle/graph.rs +++ b/src/librustc/middle/graph.rs @@ -251,7 +251,7 @@ impl Graph { while changed { changed = false; iteration += 1; - for self.edges.iter().enumerate().advance |(i, edge)| { + foreach (i, edge) in self.edges.iter().enumerate() { changed |= op(iteration, EdgeIndex(i), edge); } } diff --git a/src/librustc/middle/kind.rs b/src/librustc/middle/kind.rs index 715ebc48a6f..a992e9fb0f0 100644 --- a/src/librustc/middle/kind.rs +++ b/src/librustc/middle/kind.rs @@ -237,7 +237,7 @@ fn check_fn( // Check kinds on free variables: do with_appropriate_checker(cx, fn_id) |chk| { let r = freevars::get_freevars(cx.tcx, fn_id); - for r.iter().advance |fv| { + foreach fv in r.iter() { chk(cx, *fv); } } @@ -255,7 +255,7 @@ pub fn check_expr(e: @expr, (cx, v): (Context, visit::vt)) { }; { let r = cx.tcx.node_type_substs.find(&type_parameter_id); - for r.iter().advance |ts| { + foreach ts in r.iter() { let type_param_defs = match e.node { expr_path(_) => { let did = ast_util::def_id_of_def(cx.tcx.def_map.get_copy(&e.id)); @@ -279,7 +279,7 @@ pub fn check_expr(e: @expr, (cx, v): (Context, visit::vt)) { ts.repr(cx.tcx), type_param_defs.repr(cx.tcx)); } - for ts.iter().zip(type_param_defs.iter()).advance |(&ty, type_param_def)| { + foreach (&ty, type_param_def) in ts.iter().zip(type_param_defs.iter()) { check_typaram_bounds(cx, type_parameter_id, e.span, ty, type_param_def) } } @@ -317,11 +317,11 @@ fn check_ty(aty: &Ty, (cx, v): (Context, visit::vt)) { match aty.node { ty_path(_, _, id) => { let r = cx.tcx.node_type_substs.find(&id); - for r.iter().advance |ts| { + foreach ts in r.iter() { let did = ast_util::def_id_of_def(cx.tcx.def_map.get_copy(&id)); let type_param_defs = ty::lookup_item_type(cx.tcx, did).generics.type_param_defs; - for ts.iter().zip(type_param_defs.iter()).advance |(&ty, type_param_def)| { + foreach (&ty, type_param_def) in ts.iter().zip(type_param_defs.iter()) { check_typaram_bounds(cx, aty.id, aty.span, ty, type_param_def) } } diff --git a/src/librustc/middle/lang_items.rs b/src/librustc/middle/lang_items.rs index 54e7a2fd7e7..0c54da66d73 100644 --- a/src/librustc/middle/lang_items.rs +++ b/src/librustc/middle/lang_items.rs @@ -412,7 +412,7 @@ impl<'self> LanguageItemCollector<'self> { let this: *mut LanguageItemCollector = &mut *self; visit_crate(self.crate, ((), mk_simple_visitor(@SimpleVisitor { visit_item: |item| { - for item.attrs.iter().advance |attribute| { + foreach attribute in item.attrs.iter() { unsafe { (*this).match_and_collect_meta_item( local_def(item.id), diff --git a/src/librustc/middle/lint.rs b/src/librustc/middle/lint.rs index 1f01ad7a282..cb1ceef18ed 100644 --- a/src/librustc/middle/lint.rs +++ b/src/librustc/middle/lint.rs @@ -284,7 +284,7 @@ static lint_table: &'static [(&'static str, LintSpec)] = &[ */ pub fn get_lint_dict() -> LintDict { let mut map = HashMap::new(); - for lint_table.iter().advance |&(k, v)| { + foreach &(k, v) in lint_table.iter() { map.insert(k, v); } return map; @@ -348,7 +348,7 @@ impl Context { } fn lint_to_str(&self, lint: lint) -> &'static str { - for self.dict.iter().advance |(k, v)| { + foreach (k, v) in self.dict.iter() { if v.lint == lint { return *k; } @@ -384,7 +384,7 @@ impl Context { allow => fail!(), } - for note.iter().advance |&span| { + foreach &span in note.iter() { self.tcx.sess.span_note(span, "lint level defined here"); } } @@ -466,12 +466,12 @@ impl Context { // pair instead of just one visitor. match n { Item(it) => { - for self.visitors.iter().advance |&(orig, stopping)| { + foreach &(orig, stopping) in self.visitors.iter() { (orig.visit_item)(it, (self, stopping)); } } Crate(c) => { - for self.visitors.iter().advance |&(_, stopping)| { + foreach &(_, stopping) in self.visitors.iter() { visit::visit_crate(c, (self, stopping)); } } @@ -480,7 +480,7 @@ impl Context { // to be a no-op, so manually invoke visit_fn. Method(m) => { let fk = visit::fk_method(m.ident, &m.generics, m); - for self.visitors.iter().advance |&(orig, stopping)| { + foreach &(orig, stopping) in self.visitors.iter() { (orig.visit_fn)(&fk, &m.decl, &m.body, m.span, m.id, (self, stopping)); } @@ -493,9 +493,9 @@ pub fn each_lint(sess: session::Session, attrs: &[ast::Attribute], f: &fn(@ast::MetaItem, level, @str) -> bool) -> bool { let xs = [allow, warn, deny, forbid]; - for xs.iter().advance |&level| { + foreach &level in xs.iter() { let level_name = level_to_str(level); - for attrs.iter().filter(|m| level_name == m.name()).advance |attr| { + foreach attr in attrs.iter().filter(|m| level_name == m.name()) { let meta = attr.node.value; let metas = match meta.node { ast::MetaList(_, ref metas) => metas, @@ -504,7 +504,7 @@ pub fn each_lint(sess: session::Session, loop; } }; - for metas.iter().advance |meta| { + foreach meta in metas.iter() { match meta.node { ast::MetaWord(lintname) => { if !f(*meta, level, lintname) { @@ -706,7 +706,7 @@ fn check_item_ctypes(cx: &Context, it: &ast::item) { } fn check_foreign_fn(cx: &Context, decl: &ast::fn_decl) { - for decl.inputs.iter().advance |input| { + foreach input in decl.inputs.iter() { check_ty(cx, &input.ty); } check_ty(cx, &decl.output) @@ -714,7 +714,7 @@ fn check_item_ctypes(cx: &Context, it: &ast::item) { match it.node { ast::item_foreign_mod(ref nmod) if !nmod.abis.is_intrinsic() => { - for nmod.items.iter().advance |ni| { + foreach ni in nmod.items.iter() { match ni.node { ast::foreign_item_fn(ref decl, _, _) => { check_foreign_fn(cx, decl); @@ -756,7 +756,7 @@ fn check_type_for_lint(cx: &Context, lint: lint, span: span, ty: ty::t) { fn check_type(cx: &Context, span: span, ty: ty::t) { let xs = [managed_heap_memory, owned_heap_memory, heap_memory]; - for xs.iter().advance |lint| { + foreach lint in xs.iter() { check_type_for_lint(cx, *lint, span, ty); } } @@ -775,7 +775,7 @@ fn check_item_heap(cx: &Context, it: &ast::item) { // If it's a struct, we also have to check the fields' types match it.node { ast::item_struct(struct_def, _) => { - for struct_def.fields.iter().advance |struct_field| { + foreach struct_field in struct_def.fields.iter() { check_type(cx, struct_field.span, ty::node_id_to_type(cx.tcx, struct_field.node.id)); @@ -845,7 +845,7 @@ fn check_item_non_camel_case_types(cx: &Context, it: &ast::item) { } ast::item_enum(ref enum_definition, _) => { check_case(cx, "type", it.ident, it.span); - for enum_definition.variants.iter().advance |variant| { + foreach variant in enum_definition.variants.iter() { check_case(cx, "variant", variant.node.name, variant.span); } } @@ -907,7 +907,7 @@ fn lint_unused_mut() -> visit::vt<@mut Context> { } fn visit_fn_decl(cx: &Context, fd: &ast::fn_decl) { - for fd.inputs.iter().advance |arg| { + foreach arg in fd.inputs.iter() { if arg.is_mutbl { check_pat(cx, arg.pat); } @@ -945,7 +945,7 @@ fn lint_session() -> visit::vt<@mut Context> { match cx.tcx.sess.lints.pop(&id) { None => {}, Some(l) => { - for l.consume_iter().advance |(lint, span, msg)| { + foreach (lint, span, msg) in l.consume_iter() { cx.span_lint(lint, span, msg) } } @@ -1042,7 +1042,7 @@ fn lint_missing_doc() -> visit::vt<@mut Context> { ast::item_struct(sdef, _) if it.vis == ast::public => { check_attrs(cx, it.attrs, it.span, "missing documentation for a struct"); - for sdef.fields.iter().advance |field| { + foreach field in sdef.fields.iter() { match field.node.kind { ast::named_field(_, vis) if vis != ast::private => { check_attrs(cx, field.node.attrs, field.span, @@ -1090,7 +1090,7 @@ pub fn check_crate(tcx: ty::ctxt, crate: @ast::Crate) { } // Install command-line options, overriding defaults. - for tcx.sess.opts.lint_opts.iter().advance |&(lint, level)| { + foreach &(lint, level) in tcx.sess.opts.lint_opts.iter() { cx.set_level(lint, level, CommandLine); } @@ -1147,8 +1147,8 @@ pub fn check_crate(tcx: ty::ctxt, crate: @ast::Crate) { // If we missed any lints added to the session, then there's a bug somewhere // in the iteration code. - for tcx.sess.lints.iter().advance |(_, v)| { - for v.iter().advance |t| { + foreach (_, v) in tcx.sess.lints.iter() { + foreach t in v.iter() { match *t { (lint, span, ref msg) => tcx.sess.span_bug(span, fmt!("unprocessed lint %?: %s", diff --git a/src/librustc/middle/liveness.rs b/src/librustc/middle/liveness.rs index 9c97daec8e7..a5335d209fa 100644 --- a/src/librustc/middle/liveness.rs +++ b/src/librustc/middle/liveness.rs @@ -360,7 +360,7 @@ fn visit_fn(fk: &visit::fn_kind, debug!("creating fn_maps: %x", transmute(&*fn_maps)); } - for decl.inputs.iter().advance |arg| { + foreach arg in decl.inputs.iter() { do pat_util::pat_bindings(this.tcx.def_map, arg.pat) |_bm, arg_id, _x, path| { debug!("adding argument %d", arg_id); @@ -436,7 +436,7 @@ fn visit_local(local: @Local, (this, vt): (@mut IrMaps, vt<@mut IrMaps>)) { fn visit_arm(arm: &arm, (this, vt): (@mut IrMaps, vt<@mut IrMaps>)) { let def_map = this.tcx.def_map; - for arm.pats.iter().advance |pat| { + foreach pat in arm.pats.iter() { do pat_util::pat_bindings(def_map, *pat) |bm, p_id, sp, path| { debug!("adding local variable %d from match with bm %?", p_id, bm); @@ -475,7 +475,7 @@ fn visit_expr(expr: @expr, (this, vt): (@mut IrMaps, vt<@mut IrMaps>)) { // construction site. let cvs = this.capture_map.get(&expr.id); let mut call_caps = ~[]; - for cvs.iter().advance |cv| { + foreach cv in cvs.iter() { match moves::moved_variable_node_id_from_def(cv.def) { Some(rv) => { let cv_ln = this.add_live_node(FreeVarNode(cv.span)); @@ -1084,7 +1084,7 @@ impl Liveness { let ln = self.live_node(expr.id, expr.span); self.init_empty(ln, succ); let mut first_merge = true; - for arms.iter().advance |arm| { + foreach arm in arms.iter() { let body_succ = self.propagate_through_block(&arm.body, succ); let guard_succ = @@ -1461,12 +1461,12 @@ fn check_expr(expr: @expr, (this, vt): (@Liveness, vt<@Liveness>)) { } expr_inline_asm(ref ia) => { - for ia.inputs.iter().advance |&(_, input)| { + foreach &(_, input) in ia.inputs.iter() { (vt.visit_expr)(input, (this, vt)); } // Output operands must be lvalues - for ia.outputs.iter().advance |&(_, out)| { + foreach &(_, out) in ia.outputs.iter() { match out.node { expr_addr_of(_, inner) => { this.check_lvalue(inner, vt); @@ -1603,7 +1603,7 @@ impl Liveness { } pub fn warn_about_unused_args(&self, decl: &fn_decl, entry_ln: LiveNode) { - for decl.inputs.iter().advance |arg| { + foreach arg in decl.inputs.iter() { do pat_util::pat_bindings(self.tcx.def_map, arg.pat) |_bm, p_id, sp, _n| { let var = self.variable(p_id, sp); @@ -1628,7 +1628,7 @@ impl Liveness { -> bool { if !self.used_on_entry(ln, var) { let r = self.should_warn(var); - for r.iter().advance |name| { + foreach name in r.iter() { // annoying: for parameters in funcs like `fn(x: int) // {ret}`, there is only one node, so asking about @@ -1661,7 +1661,7 @@ impl Liveness { var: Variable) { if self.live_on_exit(ln, var).is_none() { let r = self.should_warn(var); - for r.iter().advance |name| { + foreach name in r.iter() { self.tcx.sess.add_lint(dead_assignment, id, sp, fmt!("value assigned to `%s` is never read", *name)); } diff --git a/src/librustc/middle/mem_categorization.rs b/src/librustc/middle/mem_categorization.rs index a875381cc43..059f3a05d9c 100644 --- a/src/librustc/middle/mem_categorization.rs +++ b/src/librustc/middle/mem_categorization.rs @@ -907,7 +907,7 @@ impl mem_categorization_ctxt { } }; - for subpats.iter().enumerate().advance |(i, &subpat)| { + foreach (i, &subpat) in subpats.iter().enumerate() { let subpat_ty = self.pat_ty(subpat); // see (*) let subcmt = @@ -920,7 +920,7 @@ impl mem_categorization_ctxt { } Some(&ast::def_fn(*)) | Some(&ast::def_struct(*)) => { - for subpats.iter().enumerate().advance |(i, &subpat)| { + foreach (i, &subpat) in subpats.iter().enumerate() { let subpat_ty = self.pat_ty(subpat); // see (*) let cmt_field = self.cat_imm_interior( @@ -930,7 +930,7 @@ impl mem_categorization_ctxt { } } Some(&ast::def_static(*)) => { - for subpats.iter().advance |&subpat| { + foreach &subpat in subpats.iter() { self.cat_pattern(cmt, subpat, |x,y| op(x,y)); } } @@ -952,7 +952,7 @@ impl mem_categorization_ctxt { ast::pat_struct(_, ref field_pats, _) => { // {f1: p1, ..., fN: pN} - for field_pats.iter().advance |fp| { + foreach fp in field_pats.iter() { let field_ty = self.pat_ty(fp.pat); // see (*) let cmt_field = self.cat_field(pat, cmt, fp.ident, field_ty); self.cat_pattern(cmt_field, fp.pat, |x,y| op(x,y)); @@ -961,7 +961,7 @@ impl mem_categorization_ctxt { ast::pat_tup(ref subpats) => { // (p1, ..., pN) - for subpats.iter().enumerate().advance |(i, &subpat)| { + foreach (i, &subpat) in subpats.iter().enumerate() { let subpat_ty = self.pat_ty(subpat); // see (*) let subcmt = self.cat_imm_interior( @@ -980,15 +980,15 @@ impl mem_categorization_ctxt { ast::pat_vec(ref before, slice, ref after) => { let elt_cmt = self.cat_index(pat, cmt, 0); - for before.iter().advance |&before_pat| { + foreach &before_pat in before.iter() { self.cat_pattern(elt_cmt, before_pat, |x,y| op(x,y)); } - for slice.iter().advance |&slice_pat| { + foreach &slice_pat in slice.iter() { let slice_ty = self.pat_ty(slice_pat); let slice_cmt = self.cat_rvalue_node(pat, slice_ty); self.cat_pattern(slice_cmt, slice_pat, |x,y| op(x,y)); } - for after.iter().advance |&after_pat| { + foreach &after_pat in after.iter() { self.cat_pattern(elt_cmt, after_pat, |x,y| op(x,y)); } } @@ -1077,7 +1077,7 @@ pub fn field_mutbl(tcx: ty::ctxt, match ty::get(base_ty).sty { ty::ty_struct(did, _) => { let r = ty::lookup_struct_fields(tcx, did); - for r.iter().advance |fld| { + foreach fld in r.iter() { if fld.ident == f_name { return Some(ast::m_imm); } @@ -1087,7 +1087,7 @@ pub fn field_mutbl(tcx: ty::ctxt, match tcx.def_map.get_copy(&node_id) { ast::def_variant(_, variant_id) => { let r = ty::lookup_struct_fields(tcx, variant_id); - for r.iter().advance |fld| { + foreach fld in r.iter() { if fld.ident == f_name { return Some(ast::m_imm); } diff --git a/src/librustc/middle/moves.rs b/src/librustc/middle/moves.rs index eaa7970cfe4..a31003d8a16 100644 --- a/src/librustc/middle/moves.rs +++ b/src/librustc/middle/moves.rs @@ -231,7 +231,7 @@ fn compute_modes_for_local<'a>(local: @Local, (cx, v): (VisitContext, vt)) { cx.use_pat(local.pat); - for local.init.iter().advance |&init| { + foreach &init in local.init.iter() { cx.use_expr(init, Read, v); } } @@ -243,7 +243,7 @@ fn compute_modes_for_fn(fk: &visit::fn_kind, id: NodeId, (cx, v): (VisitContext, vt)) { - for decl.inputs.iter().advance |a| { + foreach a in decl.inputs.iter() { cx.use_pat(a.pat); } visit::visit_fn(fk, decl, body, span, id, (cx, v)); @@ -258,7 +258,7 @@ fn compute_modes_for_expr(expr: @expr, impl VisitContext { pub fn consume_exprs(&self, exprs: &[@expr], visitor: vt) { - for exprs.iter().advance |expr| { + foreach expr in exprs.iter() { self.consume_expr(*expr, visitor); } } @@ -289,11 +289,11 @@ impl VisitContext { debug!("consume_block(blk.id=%?)", blk.id); - for blk.stmts.iter().advance |stmt| { + foreach stmt in blk.stmts.iter() { (visitor.visit_stmt)(*stmt, (*self, visitor)); } - for blk.expr.iter().advance |tail_expr| { + foreach tail_expr in blk.expr.iter() { self.consume_expr(*tail_expr, visitor); } } @@ -329,7 +329,7 @@ impl VisitContext { Move => { let def = self.tcx.def_map.get_copy(&expr.id); let r = moved_variable_node_id_from_def(def); - for r.iter().advance |&id| { + foreach &id in r.iter() { self.move_maps.moved_variables_set.insert(id); } } @@ -393,11 +393,11 @@ impl VisitContext { } expr_struct(_, ref fields, opt_with) => { - for fields.iter().advance |field| { + foreach field in fields.iter() { self.consume_expr(field.expr, visitor); } - for opt_with.iter().advance |with_expr| { + foreach with_expr in opt_with.iter() { // If there are any fields whose type is move-by-default, // then `with` is consumed, otherwise it is only read let with_ty = ty::expr_ty(self.tcx, *with_expr); @@ -436,7 +436,7 @@ impl VisitContext { expr_if(cond_expr, ref then_blk, opt_else_expr) => { self.consume_expr(cond_expr, visitor); self.consume_block(then_blk, visitor); - for opt_else_expr.iter().advance |else_expr| { + foreach else_expr in opt_else_expr.iter() { self.consume_expr(*else_expr, visitor); } } @@ -444,7 +444,7 @@ impl VisitContext { expr_match(discr, ref arms) => { // We must do this first so that `arms_have_by_move_bindings` // below knows which bindings are moves. - for arms.iter().advance |arm| { + foreach arm in arms.iter() { self.consume_arm(arm, visitor); } @@ -511,7 +511,7 @@ impl VisitContext { } expr_ret(ref opt_expr) => { - for opt_expr.iter().advance |expr| { + foreach expr in opt_expr.iter() { self.consume_expr(*expr, visitor); } } @@ -547,7 +547,7 @@ impl VisitContext { } expr_fn_block(ref decl, ref body) => { - for decl.inputs.iter().advance |a| { + foreach a in decl.inputs.iter() { self.use_pat(a.pat); } let cap_vars = self.compute_captures(expr.id); @@ -581,7 +581,7 @@ impl VisitContext { // for overloaded operatrs, we are always passing in a // borrowed pointer, so it's always read mode: - for arg_exprs.iter().advance |arg_expr| { + foreach arg_expr in arg_exprs.iter() { self.use_expr(*arg_expr, Read, visitor); } @@ -589,11 +589,11 @@ impl VisitContext { } pub fn consume_arm(&self, arm: &arm, visitor: vt) { - for arm.pats.iter().advance |pat| { + foreach pat in arm.pats.iter() { self.use_pat(*pat); } - for arm.guard.iter().advance |guard| { + foreach guard in arm.guard.iter() { self.consume_expr(*guard, visitor); } @@ -640,7 +640,7 @@ impl VisitContext { arg_exprs: &[@expr], visitor: vt) { //! Uses the argument expressions. - for arg_exprs.iter().advance |arg_expr| { + foreach arg_expr in arg_exprs.iter() { self.use_fn_arg(*arg_expr, visitor); } } @@ -654,8 +654,8 @@ impl VisitContext { moves_map: MovesMap, arms: &[arm]) -> Option<@pat> { - for arms.iter().advance |arm| { - for arm.pats.iter().advance |&pat| { + foreach arm in arms.iter() { + foreach &pat in arm.pats.iter() { for ast_util::walk_pat(pat) |p| { if moves_map.contains(&p.id) { return Some(p); diff --git a/src/librustc/middle/privacy.rs b/src/librustc/middle/privacy.rs index 521eb8a95b0..d5855dac177 100644 --- a/src/librustc/middle/privacy.rs +++ b/src/librustc/middle/privacy.rs @@ -50,7 +50,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, *count += 1; } item_impl(_, _, _, ref methods) => { - for methods.iter().advance |method| { + foreach method in methods.iter() { privileged_items.push(method.id); *count += 1; } @@ -58,7 +58,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, *count += 1; } item_foreign_mod(ref foreign_mod) => { - for foreign_mod.items.iter().advance |foreign_item| { + foreach foreign_item in foreign_mod.items.iter() { privileged_items.push(foreign_item.id); *count += 1; } @@ -70,7 +70,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, // Adds items that are privileged to this scope. let add_privileged_items: @fn(&[@ast::item]) -> uint = |items| { let mut count = 0; - for items.iter().advance |&item| { + foreach &item in items.iter() { add_privileged_item(item, &mut count); } count @@ -206,7 +206,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, let check_field: @fn(span: span, id: ast::def_id, ident: ast::ident) = |span, id, ident| { let fields = ty::lookup_struct_fields(tcx, id); - for fields.iter().advance |field| { + foreach field in fields.iter() { if field.ident != ident { loop; } if field.vis == private { tcx.sess.span_err(span, fmt!("field `%s` is private", @@ -354,7 +354,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, visit_block: |block, (method_map, visitor)| { // Gather up all the privileged items. let mut n_added = 0; - for block.stmts.iter().advance |stmt| { + foreach stmt in block.stmts.iter() { match stmt.node { stmt_decl(decl, _) => { match decl.node { @@ -425,7 +425,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, ty_struct(id, _) => { if id.crate != LOCAL_CRATE || !privileged_items.iter().any(|x| x == &(id.node)) { - for (*fields).iter().advance |field| { + foreach field in (*fields).iter() { debug!("(privacy checking) checking \ field in struct literal"); check_field(expr.span, id, field.ident); @@ -437,7 +437,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, !privileged_items.iter().any(|x| x == &(id.node)) { match tcx.def_map.get_copy(&expr.id) { def_variant(_, variant_id) => { - for (*fields).iter().advance |field| { + foreach field in (*fields).iter() { debug!("(privacy checking) \ checking field in \ struct variant \ @@ -489,7 +489,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, ty_struct(id, _) => { if id.crate != LOCAL_CRATE || !privileged_items.iter().any(|x| x == &(id.node)) { - for fields.iter().advance |field| { + foreach field in fields.iter() { debug!("(privacy checking) checking \ struct pattern"); check_field(pattern.span, id, field.ident); @@ -501,7 +501,7 @@ pub fn check_crate<'mm>(tcx: ty::ctxt, !privileged_items.iter().any(|x| x == &enum_id.node) { match tcx.def_map.find(&pattern.id) { Some(&def_variant(_, variant_id)) => { - for fields.iter().advance |field| { + foreach field in fields.iter() { debug!("(privacy checking) \ checking field in \ struct variant pattern"); diff --git a/src/librustc/middle/reachable.rs b/src/librustc/middle/reachable.rs index 1d9708bb82d..681fc0316ca 100644 --- a/src/librustc/middle/reachable.rs +++ b/src/librustc/middle/reachable.rs @@ -136,7 +136,7 @@ impl ReachableContext { } item_enum(ref enum_def, _) => { if privacy_context == PublicContext { - for enum_def.variants.iter().advance |variant| { + foreach variant in enum_def.variants.iter() { reachable_symbols.insert(variant.node.id); } } @@ -155,7 +155,7 @@ impl ReachableContext { }; // Mark all public methods as reachable. - for methods.iter().advance |&method| { + foreach &method in methods.iter() { if should_be_considered_public(method) { reachable_symbols.insert(method.id); } @@ -164,7 +164,7 @@ impl ReachableContext { if generics_require_inlining(generics) { // If the impl itself has generics, add all public // symbols to the worklist. - for methods.iter().advance |&method| { + foreach &method in methods.iter() { if should_be_considered_public(method) { worklist.push(method.id) } @@ -172,7 +172,7 @@ impl ReachableContext { } else { // Otherwise, add only public methods that have // generics to the worklist. - for methods.iter().advance |method| { + foreach method in methods.iter() { let generics = &method.generics; let attrs = &method.attrs; if generics_require_inlining(generics) || @@ -186,7 +186,7 @@ impl ReachableContext { item_trait(_, _, ref trait_methods) => { // Mark all provided methods as reachable. if privacy_context == PublicContext { - for trait_methods.iter().advance |trait_method| { + foreach trait_method in trait_methods.iter() { match *trait_method { provided(method) => { reachable_symbols.insert(method.id); diff --git a/src/librustc/middle/region.rs b/src/librustc/middle/region.rs index d1c32bfd4b7..0a50a88a6ed 100644 --- a/src/librustc/middle/region.rs +++ b/src/librustc/middle/region.rs @@ -198,7 +198,7 @@ impl RegionMaps { while i < queue.len() { match self.free_region_map.find(&queue[i]) { Some(parents) => { - for parents.iter().advance |parent| { + foreach parent in parents.iter() { if *parent == sup { return true; } @@ -318,7 +318,7 @@ impl RegionMaps { fn parent_to_expr(cx: Context, child_id: ast::NodeId, sp: span) { debug!("region::parent_to_expr(span=%?)", cx.sess.codemap.span_to_str(sp)); - for cx.parent.iter().advance |parent_id| { + foreach parent_id in cx.parent.iter() { cx.region_maps.record_parent(child_id, *parent_id); } } @@ -713,7 +713,7 @@ fn determine_rp_in_fn(fk: &visit::fn_kind, visit::vt<@mut DetermineRpCtxt>)) { do cx.with(cx.item_id, false) { do cx.with_ambient_variance(rv_contravariant) { - for decl.inputs.iter().advance |a| { + foreach a in decl.inputs.iter() { (visitor.visit_ty)(&a.ty, (cx, visitor)); } } @@ -824,7 +824,7 @@ fn determine_rp_in_ty(ty: &ast::Ty, ast::ty_path(ref path, _, _) => { // type parameters are---for now, anyway---always invariant do cx.with_ambient_variance(rv_invariant) { - for path.types.iter().advance |tp| { + foreach tp in path.types.iter() { (visitor.visit_ty)(tp, (cx, visitor)); } } @@ -837,7 +837,7 @@ fn determine_rp_in_ty(ty: &ast::Ty, do cx.with(cx.item_id, false) { // parameters are contravariant do cx.with_ambient_variance(rv_contravariant) { - for decl.inputs.iter().advance |a| { + foreach a in decl.inputs.iter() { (visitor.visit_ty)(&a.ty, (cx, visitor)); } } @@ -917,7 +917,7 @@ pub fn determine_rp_in_crate(sess: Session, match cx.dep_map.find(&c_id) { None => {} Some(deps) => { - for deps.iter().advance |dep| { + foreach dep in deps.iter() { let v = add_variance(dep.ambient_variance, c_variance); cx.add_rp(dep.id, v); } @@ -929,7 +929,7 @@ pub fn determine_rp_in_crate(sess: Session, debug!("%s", { debug!("Region variance results:"); let region_paramd_items = cx.region_paramd_items; - for region_paramd_items.iter().advance |(&key, &value)| { + foreach (&key, &value) in region_paramd_items.iter() { debug!("item %? (%s) is parameterized with variance %?", key, ast_map::node_id_to_str(ast_map, key, diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs index ba11476204a..b92960a49fa 100644 --- a/src/librustc/middle/resolve.rs +++ b/src/librustc/middle/resolve.rs @@ -1037,7 +1037,7 @@ impl Resolver { self.session.str_of(name))); { let r = child.span_for_namespace(ns); - for r.iter().advance |sp| { + foreach sp in r.iter() { self.session.span_note(*sp, fmt!("first definition of %s `%s` here", namespace_error_to_str(duplicate_type), @@ -1057,7 +1057,7 @@ impl Resolver { } // Check each statement. - for block.stmts.iter().advance |statement| { + foreach statement in block.stmts.iter() { match statement.node { stmt_decl(declaration, _) => { match declaration.node { @@ -1179,7 +1179,7 @@ impl Resolver { name_bindings.define_type (privacy, def_ty(local_def(item.id)), sp); - for (*enum_definition).variants.iter().advance |variant| { + foreach variant in (*enum_definition).variants.iter() { self.build_reduced_graph_for_variant( variant, local_def(item.id), @@ -1264,7 +1264,7 @@ impl Resolver { }; // For each method... - for methods.iter().advance |method| { + foreach method in methods.iter() { // Add the method to the module. let ident = method.ident; let (method_name_bindings, _) = @@ -1316,7 +1316,7 @@ impl Resolver { // Add the names of all the methods to the trait info. let mut method_names = HashMap::new(); - for methods.iter().advance |method| { + foreach method in methods.iter() { let ty_m = trait_method_to_ty_method(method); let ident = ty_m.ident; @@ -1353,7 +1353,7 @@ impl Resolver { } let def_id = local_def(item.id); - for method_names.iter().advance |(name, _)| { + foreach (name, _) in method_names.iter() { if !self.method_map.contains_key(name) { self.method_map.insert(*name, HashSet::new()); } @@ -1422,7 +1422,7 @@ impl Resolver { let privacy = visibility_to_privacy(view_item.vis); match view_item.node { view_item_use(ref view_paths) => { - for view_paths.iter().advance |view_path| { + foreach view_path in view_paths.iter() { // Extract and intern the module part of the path. For // globs and lists, the path is found directly in the AST; // for simple paths we have to munge the path a little. @@ -1433,7 +1433,7 @@ impl Resolver { let path_len = full_path.idents.len(); assert!(path_len != 0); - for full_path.idents.iter().enumerate().advance |(i, ident)| { + foreach (i, ident) in full_path.idents.iter().enumerate() { if i != path_len - 1 { module_path.push(*ident); } @@ -1442,7 +1442,7 @@ impl Resolver { view_path_glob(ref module_ident_path, _) | view_path_list(ref module_ident_path, _, _) => { - for module_ident_path.idents.iter().advance |ident| { + foreach ident in module_ident_path.idents.iter() { module_path.push(*ident); } } @@ -1463,7 +1463,7 @@ impl Resolver { id); } view_path_list(_, ref source_idents, _) => { - for source_idents.iter().advance |source_ident| { + foreach source_ident in source_idents.iter() { let name = source_ident.node.name; let subclass = @SingleImport(name, name); self.build_import_directive( @@ -1657,7 +1657,7 @@ impl Resolver { let method_def_ids = get_trait_method_def_ids(self.session.cstore, def_id); let mut interned_method_names = HashSet::new(); - for method_def_ids.iter().advance |&method_def_id| { + foreach &method_def_id in method_def_ids.iter() { let (method_name, explicit_self) = get_method_name_and_explicit_self(self.session.cstore, method_def_id); @@ -1672,7 +1672,7 @@ impl Resolver { interned_method_names.insert(method_name); } } - for interned_method_names.iter().advance |name| { + foreach name in interned_method_names.iter() { if !self.method_map.contains_key(name) { self.method_map.insert(*name, HashSet::new()); } @@ -1741,7 +1741,7 @@ impl Resolver { // need to. let mut current_module = root; - for pieces.iter().advance |ident_str| { + foreach ident_str in pieces.iter() { let ident = self.session.ident_of(*ident_str); // Create or reuse a graph node for the child. let (child_name_bindings, new_parent) = @@ -1861,7 +1861,7 @@ impl Resolver { // Add each static method to the module. let new_parent = ModuleReducedGraphParent( type_module); - for static_methods.iter().advance |static_method_info| { + foreach static_method_info in static_methods.iter() { let ident = static_method_info.ident; debug!("(building reduced graph for \ external crate) creating \ @@ -2047,7 +2047,7 @@ impl Resolver { pub fn idents_to_str(@mut self, idents: &[ident]) -> ~str { let mut first = true; let mut result = ~""; - for idents.iter().advance |ident| { + foreach ident in idents.iter() { if first { first = false } else { @@ -2531,7 +2531,7 @@ impl Resolver { }; // Add all children from the containing module. - for containing_module.children.iter().advance |(&ident, name_bindings)| { + foreach (&ident, name_bindings) in containing_module.children.iter() { merge_import_resolution(ident, *name_bindings); } @@ -3237,7 +3237,7 @@ impl Resolver { loop; } let xs = [TypeNS, ValueNS]; - for xs.iter().advance |ns| { + foreach ns in xs.iter() { match importresolution.target_for_namespace(*ns) { Some(target) => { debug!("(computing exports) maybe reexport '%s'", @@ -3485,8 +3485,8 @@ impl Resolver { // enum item: resolve all the variants' discrs, // then resolve the ty params item_enum(ref enum_def, ref generics) => { - for (*enum_def).variants.iter().advance |variant| { - for variant.node.disr_expr.iter().advance |dis_expr| { + foreach variant in (*enum_def).variants.iter() { + foreach dis_expr in variant.node.disr_expr.iter() { // resolve the discriminator expr // as a constant self.with_constant_rib(|| { @@ -3543,11 +3543,11 @@ impl Resolver { visitor); // Resolve derived traits. - for traits.iter().advance |trt| { + foreach trt in traits.iter() { self.resolve_trait_reference(item.id, trt, visitor, TraitDerivation); } - for (*methods).iter().advance |method| { + foreach method in (*methods).iter() { // Create a new rib for the method-specific type // parameters. // @@ -3567,7 +3567,7 @@ impl Resolver { &ty_m.generics.ty_params, visitor); - for ty_m.decl.inputs.iter().advance |argument| { + foreach argument in ty_m.decl.inputs.iter() { self.resolve_type(&argument.ty, visitor); } @@ -3604,7 +3604,7 @@ impl Resolver { item_foreign_mod(ref foreign_module) => { do self.with_scope(Some(item.ident)) { - for foreign_module.items.iter().advance |foreign_item| { + foreach foreign_item in foreign_module.items.iter() { match foreign_item.node { foreign_item_fn(_, _, ref generics) => { self.with_type_parameter_rib( @@ -3660,7 +3660,7 @@ impl Resolver { let function_type_rib = @Rib(rib_kind); self.type_ribs.push(function_type_rib); - for generics.ty_params.iter().enumerate().advance |(index, type_parameter)| { + foreach (index, type_parameter) in generics.ty_params.iter().enumerate() { let name = type_parameter.ident; debug!("with_type_parameter_rib: %d %d", node_id, type_parameter.id); @@ -3751,7 +3751,7 @@ impl Resolver { // Nothing to do. } Some(declaration) => { - for declaration.inputs.iter().advance |argument| { + foreach argument in declaration.inputs.iter() { let binding_mode = ArgumentIrrefutableMode; let mutability = if argument.is_mutbl {Mutable} else {Immutable}; @@ -3783,8 +3783,8 @@ impl Resolver { pub fn resolve_type_parameters(@mut self, type_parameters: &OptVec, visitor: ResolveVisitor) { - for type_parameters.iter().advance |type_parameter| { - for type_parameter.bounds.iter().advance |bound| { + foreach type_parameter in type_parameters.iter() { + foreach bound in type_parameter.bounds.iter() { self.resolve_type_parameter_bound(type_parameter.id, bound, visitor); } } @@ -3833,7 +3833,7 @@ impl Resolver { fields: &[@struct_field], visitor: ResolveVisitor) { let mut ident_map = HashMap::new::(); - for fields.iter().advance |&field| { + foreach &field in fields.iter() { match field.node.kind { named_field(ident, _) => { match ident_map.find(&ident) { @@ -3862,7 +3862,7 @@ impl Resolver { self.resolve_type_parameters(&generics.ty_params, visitor); // Resolve fields. - for fields.iter().advance |field| { + foreach field in fields.iter() { self.resolve_type(&field.node.ty, visitor); } } @@ -3922,7 +3922,7 @@ impl Resolver { let mut new_trait_refs = ~[]; { let r = self.def_map.find(&trait_reference.ref_id); - for r.iter().advance |&def| { + foreach &def in r.iter() { new_trait_refs.push(def_id_of_def(*def)); } } @@ -3938,7 +3938,7 @@ impl Resolver { // Resolve the self type. self.resolve_type(self_type, visitor); - for methods.iter().advance |method| { + foreach method in methods.iter() { // We also need a new scope for the method-specific // type parameters. self.resolve_method(MethodRibKind( @@ -4018,10 +4018,10 @@ impl Resolver { pub fn check_consistent_bindings(@mut self, arm: &arm) { if arm.pats.len() == 0 { return; } let map_0 = self.binding_mode_map(arm.pats[0]); - for arm.pats.iter().enumerate().advance |(i, p)| { + foreach (i, p) in arm.pats.iter().enumerate() { let map_i = self.binding_mode_map(*p); - for map_0.iter().advance |(&key, &binding_0)| { + foreach (&key, &binding_0) in map_0.iter() { match map_i.find(&key) { None => { self.session.span_err( @@ -4042,7 +4042,7 @@ impl Resolver { } } - for map_i.iter().advance |(&key, &binding)| { + foreach (&key, &binding) in map_i.iter() { if !map_0.contains_key(&key) { self.session.span_err( binding.span, @@ -4058,7 +4058,7 @@ impl Resolver { self.value_ribs.push(@Rib(NormalRibKind)); let bindings_list = @mut HashMap::new(); - for arm.pats.iter().advance |pattern| { + foreach pattern in arm.pats.iter() { self.resolve_pattern(*pattern, RefutableMode, Immutable, Some(bindings_list), visitor); } @@ -4164,7 +4164,7 @@ impl Resolver { } do bounds.map |bound_vec| { - for bound_vec.iter().advance |bound| { + foreach bound in bound_vec.iter() { self.resolve_type_parameter_bound(ty.id, bound, visitor); } }; @@ -4172,7 +4172,7 @@ impl Resolver { ty_closure(c) => { do c.bounds.map |bounds| { - for bounds.iter().advance |bound| { + foreach bound in bounds.iter() { self.resolve_type_parameter_bound(ty.id, bound, visitor); } }; @@ -4319,7 +4319,7 @@ impl Resolver { } // Check the types in the path pattern. - for path.types.iter().advance |ty| { + foreach ty in path.types.iter() { self.resolve_type(ty, visitor); } } @@ -4352,7 +4352,7 @@ impl Resolver { } // Check the types in the path pattern. - for path.types.iter().advance |ty| { + foreach ty in path.types.iter() { self.resolve_type(ty, visitor); } } @@ -4381,7 +4381,7 @@ impl Resolver { } // Check the types in the path pattern. - for path.types.iter().advance |ty| { + foreach ty in path.types.iter() { self.resolve_type(ty, visitor); } } @@ -4477,7 +4477,7 @@ impl Resolver { visitor: ResolveVisitor) -> Option { // First, resolve the types. - for path.types.iter().advance |ty| { + foreach ty in path.types.iter() { self.resolve_type(ty, visitor); } @@ -4607,7 +4607,7 @@ impl Resolver { pub fn intern_module_part_of_path(@mut self, path: &Path) -> ~[ident] { let mut module_path_idents = ~[]; - for path.idents.iter().enumerate().advance |(index, ident)| { + foreach (index, ident) in path.idents.iter().enumerate() { if index == path.idents.len() - 1 { break; } @@ -4845,7 +4845,7 @@ impl Resolver { } let mut smallest = 0; - for maybes.iter().enumerate().advance |(i, &other)| { + foreach (i, &other) in maybes.iter().enumerate() { values[i] = name.lev_distance(other); if values[i] <= values[smallest] { @@ -4874,11 +4874,11 @@ impl Resolver { i -= 1; match this.type_ribs[i].kind { MethodRibKind(node_id, _) => - for this.crate.module.items.iter().advance |item| { + foreach item in this.crate.module.items.iter() { if item.id == node_id { match item.node { item_struct(class_def, _) => { - for class_def.fields.iter().advance |field| { + foreach field in class_def.fields.iter() { match field.node.kind { unnamed_field => {}, named_field(ident, _) => { @@ -5152,7 +5152,7 @@ impl Resolver { // Look for the current trait. match self.current_trait_refs { Some(ref trait_def_ids) => { - for trait_def_ids.iter().advance |trait_def_id| { + foreach trait_def_id in trait_def_ids.iter() { if candidate_traits.contains(trait_def_id) { self.add_trait_info(&mut found_traits, *trait_def_id, @@ -5308,7 +5308,7 @@ impl Resolver { match vi.node { view_item_extern_mod(*) => {} // ignore view_item_use(ref path) => { - for path.iter().advance |p| { + foreach p in path.iter() { match p.node { view_path_simple(_, _, id) | view_path_glob(_, id) => { if !self.used_imports.contains(&id) { @@ -5319,7 +5319,7 @@ impl Resolver { } view_path_list(_, ref list, _) => { - for list.iter().advance |i| { + foreach i in list.iter() { if !self.used_imports.contains(&i.node.id) { self.session.add_lint(unused_imports, i.node.id, i.span, @@ -5375,7 +5375,7 @@ impl Resolver { } debug!("Import resolutions:"); - for module_.import_resolutions.iter().advance |(name, import_resolution)| { + foreach (name, import_resolution) in module_.import_resolutions.iter() { let value_repr; match import_resolution.target_for_namespace(ValueNS) { None => { value_repr = ~""; } diff --git a/src/librustc/middle/trans/_match.rs b/src/librustc/middle/trans/_match.rs index 9668f1ec46e..8a8dfbc8fb9 100644 --- a/src/librustc/middle/trans/_match.rs +++ b/src/librustc/middle/trans/_match.rs @@ -298,7 +298,7 @@ pub fn variant_opt(bcx: @mut Block, pat_id: ast::NodeId) match ccx.tcx.def_map.get_copy(&pat_id) { ast::def_variant(enum_id, var_id) => { let variants = ty::enum_variants(ccx.tcx, enum_id); - for (*variants).iter().advance |v| { + foreach v in (*variants).iter() { if var_id == v.id { return var(v.disr_val, adt::represent_node(bcx, pat_id)) @@ -367,7 +367,7 @@ pub fn matches_to_str(bcx: @mut Block, m: &[Match]) -> ~str { } pub fn has_nested_bindings(m: &[Match], col: uint) -> bool { - for m.iter().advance |br| { + foreach br in m.iter() { match br.pats[col].node { ast::pat_ident(_, _, Some(_)) => return true, _ => () @@ -437,7 +437,7 @@ pub fn enter_match<'r>(bcx: @mut Block, let _indenter = indenter(); let mut result = ~[]; - for m.iter().advance |br| { + foreach br in m.iter() { match e(br.pats[col]) { Some(sub) => { let pats = @@ -589,7 +589,7 @@ pub fn enter_opt<'r>(bcx: @mut Block, // unspecified fields with dummy. let mut reordered_patterns = ~[]; let r = ty::lookup_struct_fields(tcx, struct_id); - for r.iter().advance |field| { + foreach field in r.iter() { match field_pats.iter().find_(|p| p.ident == field.ident) { None => reordered_patterns.push(dummy), Some(fp) => reordered_patterns.push(fp.pat) @@ -649,7 +649,7 @@ pub fn enter_rec_or_struct<'r>(bcx: @mut Block, match p.node { ast::pat_struct(_, ref fpats, _) => { let mut pats = ~[]; - for fields.iter().advance |fname| { + foreach fname in fields.iter() { match fpats.iter().find_(|p| p.ident == *fname) { None => pats.push(dummy), Some(pat) => pats.push(pat.pat) @@ -809,7 +809,7 @@ pub fn get_options(bcx: @mut Block, m: &[Match], col: uint) -> ~[Opt] { } let mut found = ~[]; - for m.iter().advance |br| { + foreach br in m.iter() { let cur = br.pats[col]; match cur.node { ast::pat_lit(l) => { @@ -955,7 +955,7 @@ pub fn collect_record_or_struct_fields(bcx: @mut Block, col: uint) -> ~[ast::ident] { let mut fields: ~[ast::ident] = ~[]; - for m.iter().advance |br| { + foreach br in m.iter() { match br.pats[col].node { ast::pat_struct(_, ref fs, _) => { match ty::get(node_id_type(bcx, br.pats[col].id)).sty { @@ -969,7 +969,7 @@ pub fn collect_record_or_struct_fields(bcx: @mut Block, return fields; fn extend(idents: &mut ~[ast::ident], field_pats: &[ast::field_pat]) { - for field_pats.iter().advance |field_pat| { + foreach field_pat in field_pats.iter() { let field_ident = field_pat.ident; if !idents.iter().any(|x| *x == field_ident) { idents.push(field_ident); @@ -994,7 +994,7 @@ pub fn root_pats_as_necessary(mut bcx: @mut Block, col: uint, val: ValueRef) -> @mut Block { - for m.iter().advance |br| { + foreach br in m.iter() { let pat_id = br.pats[col].id; if pat_id != 0 { let datum = Datum {val: val, ty: node_id_type(bcx, pat_id), @@ -1063,14 +1063,14 @@ pub fn pick_col(m: &[Match]) -> uint { } } let mut scores = vec::from_elem(m[0].pats.len(), 0u); - for m.iter().advance |br| { + foreach br in m.iter() { let mut i = 0u; - for br.pats.iter().advance |p| { scores[i] += score(*p); i += 1u; } + foreach p in br.pats.iter() { scores[i] += score(*p); i += 1u; } } let mut max_score = 0u; let mut best_col = 0u; let mut i = 0u; - for scores.iter().advance |score| { + foreach score in scores.iter() { let score = *score; // Irrefutable columns always go first, they'd only be duplicated in @@ -1236,7 +1236,7 @@ pub fn compile_guard(bcx: @mut Block, let val = bool_to_i1(bcx, val); // Revoke the temp cleanups now that the guard successfully executed. - for temp_cleanups.iter().advance |llval| { + foreach llval in temp_cleanups.iter() { revoke_clean(bcx, *llval); } @@ -1325,7 +1325,7 @@ fn compile_submatch_continue(mut bcx: @mut Block, let ccx = bcx.fcx.ccx; let mut pat_id = 0; let mut pat_span = dummy_sp(); - for m.iter().advance |br| { + foreach br in m.iter() { // Find a real id (we're adding placeholder wildcard patterns, but // each column is guaranteed to have at least one real pattern) if pat_id == 0 { @@ -1434,7 +1434,7 @@ fn compile_submatch_continue(mut bcx: @mut Block, var(_, repr) => { let (the_kind, val_opt) = adt::trans_switch(bcx, repr, val); kind = the_kind; - for val_opt.iter().advance |&tval| { test_val = tval; } + foreach &tval in val_opt.iter() { test_val = tval; } } lit(_) => { let pty = node_id_type(bcx, pat_id); @@ -1457,7 +1457,7 @@ fn compile_submatch_continue(mut bcx: @mut Block, } } } - for opts.iter().advance |o| { + foreach o in opts.iter() { match *o { range(_, _) => { kind = compare; break } _ => () @@ -1479,7 +1479,7 @@ fn compile_submatch_continue(mut bcx: @mut Block, let mut i = 0u; // Compile subtrees for each option - for opts.iter().advance |opt| { + foreach opt in opts.iter() { i += 1u; let mut opt_cx = else_cx; if !exhaustive || i < len { @@ -1688,7 +1688,7 @@ pub fn trans_match_inner(scope_cx: @mut Block, let mut arm_datas = ~[]; let mut matches = ~[]; - for arms.iter().advance |arm| { + foreach arm in arms.iter() { let body = scope_block(bcx, arm.body.info(), "case_body"); let bindings_map = create_bindings_map(bcx, arm.pats[0]); let arm_data = ArmData { @@ -1697,7 +1697,7 @@ pub fn trans_match_inner(scope_cx: @mut Block, bindings_map: @bindings_map }; arm_datas.push(arm_data.clone()); - for arm.pats.iter().advance |p| { + foreach p in arm.pats.iter() { matches.push(Match { pats: ~[*p], data: arm_data.clone(), @@ -1721,7 +1721,7 @@ pub fn trans_match_inner(scope_cx: @mut Block, compile_submatch(bcx, matches, [lldiscr], chk); let mut arm_cxs = ~[]; - for arm_datas.iter().advance |arm_data| { + foreach arm_data in arm_datas.iter() { let mut bcx = arm_data.bodycx; // If this arm has a guard, then the various by-value bindings have @@ -1957,7 +1957,7 @@ fn bind_irrefutable_pat(bcx: @mut Block, }); } - for inner.iter().advance |&inner_pat| { + foreach &inner_pat in inner.iter() { bcx = bind_irrefutable_pat(bcx, inner_pat, val, binding_mode); } } @@ -1972,8 +1972,8 @@ fn bind_irrefutable_pat(bcx: @mut Block, repr, vinfo.disr_val, val); - for sub_pats.iter().advance |sub_pat| { - for args.vals.iter().enumerate().advance |(i, argval)| { + foreach sub_pat in sub_pats.iter() { + foreach (i, argval) in args.vals.iter().enumerate() { bcx = bind_irrefutable_pat(bcx, sub_pat[i], *argval, binding_mode); } @@ -1988,7 +1988,7 @@ fn bind_irrefutable_pat(bcx: @mut Block, Some(ref elems) => { // This is the tuple struct case. let repr = adt::represent_node(bcx, pat.id); - for elems.iter().enumerate().advance |(i, elem)| { + foreach (i, elem) in elems.iter().enumerate() { let fldptr = adt::trans_field_ptr(bcx, repr, val, 0, i); bcx = bind_irrefutable_pat(bcx, *elem, @@ -2009,7 +2009,7 @@ fn bind_irrefutable_pat(bcx: @mut Block, let pat_ty = node_id_type(bcx, pat.id); let pat_repr = adt::represent_type(bcx.ccx(), pat_ty); do expr::with_field_tys(tcx, pat_ty, None) |discr, field_tys| { - for fields.iter().advance |f| { + foreach f in fields.iter() { let ix = ty::field_idx_strict(tcx, f.ident, field_tys); let fldptr = adt::trans_field_ptr(bcx, pat_repr, val, discr, ix); @@ -2019,7 +2019,7 @@ fn bind_irrefutable_pat(bcx: @mut Block, } ast::pat_tup(ref elems) => { let repr = adt::represent_node(bcx, pat.id); - for elems.iter().enumerate().advance |(i, elem)| { + foreach (i, elem) in elems.iter().enumerate() { let fldptr = adt::trans_field_ptr(bcx, repr, val, 0, i); bcx = bind_irrefutable_pat(bcx, *elem, fldptr, binding_mode); } diff --git a/src/librustc/middle/trans/adt.rs b/src/librustc/middle/trans/adt.rs index 70b204621b0..6c37fd18f69 100644 --- a/src/librustc/middle/trans/adt.rs +++ b/src/librustc/middle/trans/adt.rs @@ -249,7 +249,7 @@ fn generic_fields_of(cx: &mut CrateContext, r: &Repr, sizing: bool) -> ~[Type] { let mut most_aligned = None; let mut largest_align = 0; let mut largest_size = 0; - for sts.iter().advance |st| { + foreach st in sts.iter() { if largest_size < st.size { largest_size = st.size; } @@ -545,7 +545,7 @@ fn build_const_struct(ccx: &mut CrateContext, st: &Struct, vals: &[ValueRef]) let mut offset = 0; let mut cfields = ~[]; - for st.fields.iter().enumerate().advance |(i, &ty)| { + foreach (i, &ty) in st.fields.iter().enumerate() { let llty = type_of::sizing_type_of(ccx, ty); let type_align = machine::llalign_of_min(ccx, llty) /*bad*/as u64; diff --git a/src/librustc/middle/trans/asm.rs b/src/librustc/middle/trans/asm.rs index 323b649f81f..2c7e3ae0043 100644 --- a/src/librustc/middle/trans/asm.rs +++ b/src/librustc/middle/trans/asm.rs @@ -62,7 +62,7 @@ pub fn trans_inline_asm(bcx: @mut Block, ia: &ast::inline_asm) -> @mut Block { }; - for cleanups.iter().advance |c| { + foreach c in cleanups.iter() { revoke_clean(bcx, *c); } cleanups.clear(); @@ -83,7 +83,7 @@ pub fn trans_inline_asm(bcx: @mut Block, ia: &ast::inline_asm) -> @mut Block { }; - for cleanups.iter().advance |c| { + foreach c in cleanups.iter() { revoke_clean(bcx, *c); } @@ -133,7 +133,7 @@ pub fn trans_inline_asm(bcx: @mut Block, ia: &ast::inline_asm) -> @mut Block { let op = PointerCast(bcx, aoutputs[0], val_ty(outputs[0]).ptr_to()); Store(bcx, r, op); } else { - for aoutputs.iter().enumerate().advance |(i, o)| { + foreach (i, o) in aoutputs.iter().enumerate() { let v = ExtractValue(bcx, r, i); let op = PointerCast(bcx, *o, val_ty(outputs[i]).ptr_to()); Store(bcx, v, op); diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs index 42221cb08b6..3154972faa6 100644 --- a/src/librustc/middle/trans/base.rs +++ b/src/librustc/middle/trans/base.rs @@ -675,7 +675,7 @@ pub fn iter_structural_ty(cx: @mut Block, av: ValueRef, t: ty::t, let tcx = cx.tcx(); let mut cx = cx; - for variant.args.iter().enumerate().advance |(i, &arg)| { + foreach (i, &arg) in variant.args.iter().enumerate() { cx = f(cx, adt::trans_field_ptr(cx, repr, av, variant.disr_val, i), ty::subst_tps(tcx, tps, None, arg)); @@ -688,7 +688,7 @@ pub fn iter_structural_ty(cx: @mut Block, av: ValueRef, t: ty::t, ty::ty_struct(*) => { let repr = adt::represent_type(cx.ccx(), t); do expr::with_field_tys(cx.tcx(), t, None) |discr, field_tys| { - for field_tys.iter().enumerate().advance |(i, field_ty)| { + foreach (i, field_ty) in field_tys.iter().enumerate() { let llfld_a = adt::trans_field_ptr(cx, repr, av, discr, i); cx = f(cx, llfld_a, field_ty.mt.ty); } @@ -701,7 +701,7 @@ pub fn iter_structural_ty(cx: @mut Block, av: ValueRef, t: ty::t, } ty::ty_tup(ref args) => { let repr = adt::represent_type(cx.ccx(), t); - for args.iter().enumerate().advance |(i, arg)| { + foreach (i, arg) in args.iter().enumerate() { let llfld_a = adt::trans_field_ptr(cx, repr, av, 0, i); cx = f(cx, llfld_a, *arg); } @@ -729,7 +729,7 @@ pub fn iter_structural_ty(cx: @mut Block, av: ValueRef, t: ty::t, n_variants); let next_cx = sub_block(cx, "enum-iter-next"); - for (*variants).iter().advance |variant| { + foreach variant in (*variants).iter() { let variant_cx = sub_block(cx, ~"enum-iter-variant-" + uint::to_str(variant.disr_val)); @@ -863,7 +863,7 @@ pub fn invoke(bcx: @mut Block, llfn: ValueRef, llargs: ~[ValueRef]) debug!("invoking %x at %x", ::std::cast::transmute(llfn), ::std::cast::transmute(bcx.llbb)); - for llargs.iter().advance |&llarg| { + foreach &llarg in llargs.iter() { debug!("arg: %x", ::std::cast::transmute(llarg)); } } @@ -879,7 +879,7 @@ pub fn invoke(bcx: @mut Block, llfn: ValueRef, llargs: ~[ValueRef]) debug!("calling %x at %x", ::std::cast::transmute(llfn), ::std::cast::transmute(bcx.llbb)); - for llargs.iter().advance |&llarg| { + foreach &llarg in llargs.iter() { debug!("arg: %x", ::std::cast::transmute(llarg)); } } @@ -908,7 +908,7 @@ pub fn need_invoke(bcx: @mut Block) -> bool { loop { cur_scope = match cur_scope { Some(inf) => { - for inf.cleanups.iter().advance |cleanup| { + foreach cleanup in inf.cleanups.iter() { match *cleanup { clean(_, cleanup_type) | clean_temp(_, _, cleanup_type) => { if cleanup_type == normal_exit_and_unwind { @@ -1171,7 +1171,7 @@ pub fn new_block(cx: @mut FunctionContext, opt_node_info, cx); bcx.scope = scope; - for parent.iter().advance |cx| { + foreach cx in parent.iter() { if cx.unreachable { Unreachable(bcx); break; @@ -1261,7 +1261,7 @@ pub fn trans_block_cleanups_(bcx: @mut Block, bcx.ccx().sess.opts.debugging_opts & session::no_landing_pads != 0; if bcx.unreachable && !no_lpads { return bcx; } let mut bcx = bcx; - for cleanups.rev_iter().advance |cu| { + foreach cu in cleanups.rev_iter() { match *cu { clean(cfn, cleanup_type) | clean_temp(_, cfn, cleanup_type) => { // Some types don't need to be cleaned up during @@ -1304,7 +1304,7 @@ pub fn cleanup_and_leave(bcx: @mut Block, let mut dest = None; { let r = (*inf).cleanup_paths.rev_iter().find_(|cp| cp.target == leave); - for r.iter().advance |cp| { + foreach cp in r.iter() { if cp.size == inf.cleanups.len() { Br(bcx, cp.dest); return; @@ -1326,7 +1326,7 @@ pub fn cleanup_and_leave(bcx: @mut Block, bcx = trans_block_cleanups_(sub_cx, inf_cleanups, is_lpad); - for dest.iter().advance |&dest| { + foreach &dest in dest.iter() { Br(bcx, dest); return; } @@ -1449,7 +1449,7 @@ pub fn with_scope_datumblock(bcx: @mut Block, opt_node_info: Option, } pub fn block_locals(b: &ast::Block, it: &fn(@ast::Local)) { - for b.stmts.iter().advance |s| { + foreach s in b.stmts.iter() { match s.node { ast::stmt_decl(d, _) => { match d.node { @@ -1624,7 +1624,7 @@ pub fn new_fn_ctxt_w_id(ccx: @mut CrateContext, opt_node_info: Option, sp: Option) -> @mut FunctionContext { - for param_substs.iter().advance |p| { p.validate(); } + foreach p in param_substs.iter() { p.validate(); } debug!("new_fn_ctxt_w_id(path=%s, id=%?, \ param_substs=%s)", @@ -1901,7 +1901,7 @@ pub fn trans_closure(ccx: @mut CrateContext, // Put return block after all other blocks. // This somewhat improves single-stepping experience in debugger. unsafe { - for fcx.llreturn.iter().advance |&llreturn| { + foreach &llreturn in fcx.llreturn.iter() { llvm::LLVMMoveBasicBlockAfter(llreturn, bcx.llbb); } } @@ -2090,7 +2090,7 @@ pub fn trans_enum_variant_or_tuple_like_struct( let repr = adt::represent_type(ccx, result_ty); adt::trans_start_init(bcx, repr, fcx.llretptr.get(), disr); - for fn_args.iter().enumerate().advance |(i, fn_arg)| { + foreach (i, fn_arg) in fn_args.iter().enumerate() { let lldestptr = adt::trans_field_ptr(bcx, repr, fcx.llretptr.get(), @@ -2106,7 +2106,7 @@ pub fn trans_enum_variant_or_tuple_like_struct( pub fn trans_enum_def(ccx: @mut CrateContext, enum_definition: &ast::enum_def, id: ast::NodeId, vi: @~[@ty::VariantInfo], i: &mut uint) { - for enum_definition.variants.iter().advance |variant| { + foreach variant in enum_definition.variants.iter() { let disr_val = vi[*i].disr_val; *i += 1; @@ -2156,7 +2156,7 @@ pub fn trans_item(ccx: @mut CrateContext, item: &ast::item) { item.id, item.attrs); } else { - for body.stmts.iter().advance |stmt| { + foreach stmt in body.stmts.iter() { match stmt.node { ast::stmt_decl(@codemap::spanned { node: ast::decl_item(i), _ }, _) => { @@ -2189,7 +2189,7 @@ pub fn trans_item(ccx: @mut CrateContext, item: &ast::item) { consts::trans_const(ccx, m, item.id); // Do static_assert checking. It can't really be done much earlier because we need to get // the value of the bool out of LLVM - for item.attrs.iter().advance |attr| { + foreach attr in item.attrs.iter() { if "static_assert" == attr.name() { if m == ast::m_mutbl { ccx.sess.span_fatal(expr.span, @@ -2237,7 +2237,7 @@ pub fn trans_struct_def(ccx: @mut CrateContext, struct_def: @ast::struct_def) { // and control visibility. pub fn trans_mod(ccx: @mut CrateContext, m: &ast::_mod) { let _icx = push_ctxt("trans_mod"); - for m.items.iter().advance |item| { + foreach item in m.items.iter() { trans_item(ccx, *item); } } @@ -2627,7 +2627,7 @@ pub fn trans_constant(ccx: &mut CrateContext, it: @ast::item) { node: it.id }); let mut i = 0; let path = item_path(ccx, &it.id); - for (*enum_definition).variants.iter().advance |variant| { + foreach variant in (*enum_definition).variants.iter() { let p = vec::append(path.clone(), [ path_name(variant.node.name), path_name(special_idents::descrim) @@ -2807,7 +2807,7 @@ pub fn create_module_map(ccx: &mut CrateContext) -> ValueRef { keys.push(k.to_managed()); } - for keys.iter().advance |key| { + foreach key in keys.iter() { let val = *ccx.module_data.find_equiv(key).get(); let s_const = C_cstr(ccx, *key); let s_ptr = p2i(ccx, s_const); @@ -3034,7 +3034,7 @@ pub fn trans_crate(sess: session::Session, do sort::quick_sort(ccx.stats.fn_stats) |&(_, _, insns_a), &(_, _, insns_b)| { insns_a > insns_b } - for ccx.stats.fn_stats.iter().advance |tuple| { + foreach tuple in ccx.stats.fn_stats.iter() { match *tuple { (ref name, ms, insns) => { printfln!("%u insns, %u ms, %s", insns, ms, *name); @@ -3043,7 +3043,7 @@ pub fn trans_crate(sess: session::Session, } } if ccx.sess.count_llvm_insns() { - for ccx.stats.llvm_insns.iter().advance |(k, v)| { + foreach (k, v) in ccx.stats.llvm_insns.iter() { printfln!("%-7u %s", *v, *k); } } diff --git a/src/librustc/middle/trans/builder.rs b/src/librustc/middle/trans/builder.rs index be9d5a6c118..9d44dacfd68 100644 --- a/src/librustc/middle/trans/builder.rs +++ b/src/librustc/middle/trans/builder.rs @@ -516,7 +516,7 @@ impl Builder { // we care about. if ixs.len() < 16 { let mut small_vec = [ C_i32(0), ..16 ]; - for small_vec.mut_iter().zip(ixs.iter()).advance |(small_vec_e, &ix)| { + foreach (small_vec_e, &ix) in small_vec.mut_iter().zip(ixs.iter()) { *small_vec_e = C_i32(ix as i32); } self.inbounds_gep(base, small_vec.slice(0, ixs.len())) diff --git a/src/librustc/middle/trans/cabi.rs b/src/librustc/middle/trans/cabi.rs index d6215cd60af..2fcdf885aad 100644 --- a/src/librustc/middle/trans/cabi.rs +++ b/src/librustc/middle/trans/cabi.rs @@ -42,7 +42,7 @@ impl FnType { let fnty = Type::func(atys, &rty); let llfn = decl(fnty); - for self.attrs.iter().enumerate().advance |(i, a)| { + foreach (i, a) in self.attrs.iter().enumerate() { match *a { option::Some(attr) => { unsafe { @@ -92,7 +92,7 @@ impl FnType { pub fn build_shim_ret(&self, bcx: @mut Block, arg_tys: &[Type], ret_def: bool, llargbundle: ValueRef, llretval: ValueRef) { - for self.attrs.iter().enumerate().advance |(i, a)| { + foreach (i, a) in self.attrs.iter().enumerate() { match *a { option::Some(attr) => { unsafe { diff --git a/src/librustc/middle/trans/cabi_arm.rs b/src/librustc/middle/trans/cabi_arm.rs index 1492f44d977..4ad4400e982 100644 --- a/src/librustc/middle/trans/cabi_arm.rs +++ b/src/librustc/middle/trans/cabi_arm.rs @@ -133,7 +133,7 @@ impl ABIInfo for ARM_ABIInfo { ret_def: bool) -> FnType { let mut arg_tys = ~[]; let mut attrs = ~[]; - for atys.iter().advance |&aty| { + foreach &aty in atys.iter() { let (ty, attr) = classify_arg_ty(aty); arg_tys.push(ty); attrs.push(attr); diff --git a/src/librustc/middle/trans/cabi_mips.rs b/src/librustc/middle/trans/cabi_mips.rs index a9407092eed..b863447a0b4 100644 --- a/src/librustc/middle/trans/cabi_mips.rs +++ b/src/librustc/middle/trans/cabi_mips.rs @@ -190,7 +190,7 @@ impl ABIInfo for MIPS_ABIInfo { let mut attrs = ~[]; let mut offset = if sret { 4 } else { 0 }; - for atys.iter().advance |aty| { + foreach aty in atys.iter() { let (ty, attr) = classify_arg_ty(*aty, &mut offset); arg_tys.push(ty); attrs.push(attr); diff --git a/src/librustc/middle/trans/cabi_x86_64.rs b/src/librustc/middle/trans/cabi_x86_64.rs index fb09c8994ce..7796f05249d 100644 --- a/src/librustc/middle/trans/cabi_x86_64.rs +++ b/src/librustc/middle/trans/cabi_x86_64.rs @@ -180,7 +180,7 @@ fn classify_ty(ty: Type) -> ~[RegClass] { cls: &mut [RegClass], i: uint, off: uint) { let mut field_off = off; - for tys.iter().advance |ty| { + foreach ty in tys.iter() { field_off = align(field_off, *ty); classify(*ty, cls, i, field_off); field_off += ty_size(*ty); @@ -295,7 +295,7 @@ fn classify_ty(ty: Type) -> ~[RegClass] { fn llreg_ty(cls: &[RegClass]) -> Type { fn llvec_len(cls: &[RegClass]) -> uint { let mut len = 1u; - for cls.iter().advance |c| { + foreach c in cls.iter() { if *c != SSEUp { break; } @@ -356,7 +356,7 @@ fn x86_64_tys(atys: &[Type], let mut arg_tys = ~[]; let mut attrs = ~[]; - for atys.iter().advance |t| { + foreach t in atys.iter() { let (ty, attr) = x86_64_ty(*t, |cls| cls.is_pass_byval(), ByValAttribute); arg_tys.push(ty); attrs.push(attr); diff --git a/src/librustc/middle/trans/callee.rs b/src/librustc/middle/trans/callee.rs index 845229c4eda..6492c8a1cf2 100644 --- a/src/librustc/middle/trans/callee.rs +++ b/src/librustc/middle/trans/callee.rs @@ -618,7 +618,7 @@ pub fn trans_call_inner(in_cx: @mut Block, // the cleanup for the self argument match callee.data { Method(d) => { - for d.temp_cleanup.iter().advance |&v| { + foreach &v in d.temp_cleanup.iter() { revoke_clean(bcx, v); } } @@ -628,7 +628,7 @@ pub fn trans_call_inner(in_cx: @mut Block, // Uncomment this to debug calls. /* printfln!("calling: %s", bcx.val_to_str(llfn)); - for llargs.iter().advance |llarg| { + foreach llarg in llargs.iter() { printfln!("arg: %s", bcx.val_to_str(*llarg)); } io::println("---"); @@ -671,7 +671,7 @@ pub fn trans_call_inner(in_cx: @mut Block, bcx = do with_cond(bcx, ret_flag_result) |bcx| { { let r = bcx.fcx.loop_ret; - for r.iter().advance |&(flagptr, _)| { + foreach &(flagptr, _) in r.iter() { Store(bcx, C_bool(true), flagptr); Store(bcx, C_bool(false), bcx.fcx.llretptr.get()); } @@ -728,7 +728,7 @@ pub fn trans_args(cx: @mut Block, match args { ArgExprs(arg_exprs) => { let last = arg_exprs.len() - 1u; - for arg_exprs.iter().enumerate().advance |(i, arg_expr)| { + foreach (i, arg_expr) in arg_exprs.iter().enumerate() { let arg_val = unpack_result!(bcx, { trans_arg_expr(bcx, arg_tys[i], @@ -749,7 +749,7 @@ pub fn trans_args(cx: @mut Block, // now that all arguments have been successfully built, we can revoke any // temporary cleanups, as they are only needed if argument construction // should fail (for example, cleanup of copy mode args). - for temp_cleanups.iter().advance |c| { + foreach c in temp_cleanups.iter() { revoke_clean(bcx, *c) } diff --git a/src/librustc/middle/trans/closure.rs b/src/librustc/middle/trans/closure.rs index d9e9062a777..713d502c3fb 100644 --- a/src/librustc/middle/trans/closure.rs +++ b/src/librustc/middle/trans/closure.rs @@ -228,7 +228,7 @@ pub fn store_environment(bcx: @mut Block, // Copy expr values into boxed bindings. let mut bcx = bcx; - for bound_values.iter().enumerate().advance |(i, bv)| { + foreach (i, bv) in bound_values.iter().enumerate() { debug!("Copy %s into closure", bv.to_str(ccx)); if ccx.sess.asm_comments() { @@ -268,7 +268,7 @@ pub fn build_closure(bcx0: @mut Block, // Package up the captured upvars let mut env_vals = ~[]; - for cap_vars.iter().advance |cap_var| { + foreach cap_var in cap_vars.iter() { debug!("Building closure: captured variable %?", *cap_var); let datum = expr::trans_local_var(bcx, cap_var.def); match cap_var.mode { @@ -290,7 +290,7 @@ pub fn build_closure(bcx0: @mut Block, // If this is a `for` loop body, add two special environment // variables: - for include_ret_handle.iter().advance |flagptr| { + foreach flagptr in include_ret_handle.iter() { // Flag indicating we have returned (a by-ref bool): let flag_datum = Datum {val: *flagptr, ty: ty::mk_bool(), mode: ByRef(ZeroMem)}; @@ -337,7 +337,7 @@ pub fn load_environment(fcx: @mut FunctionContext, // Populate the upvars from the environment. let mut i = 0u; - for cap_vars.iter().advance |cap_var| { + foreach cap_var in cap_vars.iter() { let mut upvarptr = GEPi(bcx, llcdata, [0u, i]); match sigil { ast::BorrowedSigil => { upvarptr = Load(bcx, upvarptr); } diff --git a/src/librustc/middle/trans/common.rs b/src/librustc/middle/trans/common.rs index 8b2e5e39a82..df59133d970 100644 --- a/src/librustc/middle/trans/common.rs +++ b/src/librustc/middle/trans/common.rs @@ -138,8 +138,8 @@ pub struct param_substs { impl param_substs { pub fn validate(&self) { - for self.tys.iter().advance |t| { assert!(!ty::type_needs_infer(*t)); } - for self.self_ty.iter().advance |t| { assert!(!ty::type_needs_infer(*t)); } + foreach t in self.tys.iter() { assert!(!ty::type_needs_infer(*t)); } + foreach t in self.self_ty.iter() { assert!(!ty::type_needs_infer(*t)); } } } @@ -437,7 +437,7 @@ pub fn revoke_clean(cx: @mut Block, val: ValueRef) { clean_temp(v, _, _) if v == val => true, _ => false }); - for cleanup_pos.iter().advance |i| { + foreach i in cleanup_pos.iter() { scope_info.cleanups = vec::append(scope_info.cleanups.slice(0u, *i).to_owned(), scope_info.cleanups.slice(*i + 1u, @@ -943,7 +943,7 @@ pub fn align_to(cx: @mut Block, off: ValueRef, align: ValueRef) -> ValueRef { pub fn path_str(sess: session::Session, p: &[path_elt]) -> ~str { let mut r = ~""; let mut first = true; - for p.iter().advance |e| { + foreach e in p.iter() { match *e { ast_map::path_name(s) | ast_map::path_mod(s) => { if first { diff --git a/src/librustc/middle/trans/controlflow.rs b/src/librustc/middle/trans/controlflow.rs index 8c87766bbbe..7d9eb95505b 100644 --- a/src/librustc/middle/trans/controlflow.rs +++ b/src/librustc/middle/trans/controlflow.rs @@ -36,7 +36,7 @@ use syntax::codemap::span; pub fn trans_block(bcx: @mut Block, b: &ast::Block, dest: expr::Dest) -> @mut Block { let _icx = push_ctxt("trans_block"); let mut bcx = bcx; - for b.stmts.iter().advance |s| { + foreach s in b.stmts.iter() { debuginfo::update_source_pos(bcx, b.span); bcx = trans_stmt(bcx, *s); } @@ -144,7 +144,7 @@ pub fn trans_if(bcx: @mut Block, pub fn join_blocks(parent_bcx: @mut Block, in_cxs: &[@mut Block]) -> @mut Block { let out = sub_block(parent_bcx, "join"); let mut reachable = false; - for in_cxs.iter().advance |bcx| { + foreach bcx in in_cxs.iter() { if !bcx.unreachable { Br(*bcx, out.llbb); reachable = true; @@ -223,7 +223,7 @@ pub fn trans_log(log_ex: &ast::expr, let (modpath, modname) = { let path = &mut bcx.fcx.path; let mut modpath = ~[path_mod(ccx.sess.ident_of(ccx.link_meta.name))]; - for path.iter().advance |e| { + foreach e in path.iter() { match *e { path_mod(_) => { modpath.push(*e) } _ => {} diff --git a/src/librustc/middle/trans/expr.rs b/src/librustc/middle/trans/expr.rs index b657f162cc3..5ad18b63c76 100644 --- a/src/librustc/middle/trans/expr.rs +++ b/src/librustc/middle/trans/expr.rs @@ -1154,7 +1154,7 @@ fn trans_rec_or_struct(bcx: @mut Block, let optbase = match base { Some(base_expr) => { let mut leftovers = ~[]; - for need_base.iter().enumerate().advance |(i, b)| { + foreach (i, b) in need_base.iter().enumerate() { if *b { leftovers.push((i, field_tys[i].mt.ty)) } @@ -1208,10 +1208,10 @@ fn trans_adt(bcx: @mut Block, repr: &adt::Repr, discr: uint, let mut bcx = bcx; let addr = match dest { Ignore => { - for fields.iter().advance |&(_i, e)| { + foreach &(_i, e) in fields.iter() { bcx = trans_into(bcx, e, Ignore); } - for optbase.iter().advance |sbi| { + foreach sbi in optbase.iter() { // FIXME #7261: this moves entire base, not just certain fields bcx = trans_into(bcx, sbi.expr, Ignore); } @@ -1221,18 +1221,18 @@ fn trans_adt(bcx: @mut Block, repr: &adt::Repr, discr: uint, }; let mut temp_cleanups = ~[]; adt::trans_start_init(bcx, repr, addr, discr); - for fields.iter().advance |&(i, e)| { + foreach &(i, e) in fields.iter() { let dest = adt::trans_field_ptr(bcx, repr, addr, discr, i); let e_ty = expr_ty(bcx, e); bcx = trans_into(bcx, e, SaveIn(dest)); add_clean_temp_mem(bcx, dest, e_ty); temp_cleanups.push(dest); } - for optbase.iter().advance |base| { + foreach base in optbase.iter() { // FIXME #6573: is it sound to use the destination's repr on the base? // And, would it ever be reasonable to be here with discr != 0? let base_datum = unpack_datum!(bcx, trans_to_datum(bcx, base.expr)); - for base.fields.iter().advance |&(i, t)| { + foreach &(i, t) in base.fields.iter() { let datum = do base_datum.get_element(bcx, t, ZeroMem) |srcval| { adt::trans_field_ptr(bcx, repr, srcval, discr, i) }; @@ -1241,7 +1241,7 @@ fn trans_adt(bcx: @mut Block, repr: &adt::Repr, discr: uint, } } - for temp_cleanups.iter().advance |cleanup| { + foreach cleanup in temp_cleanups.iter() { revoke_clean(bcx, *cleanup); } return bcx; diff --git a/src/librustc/middle/trans/foreign.rs b/src/librustc/middle/trans/foreign.rs index 30034d76670..8f93d61aff6 100644 --- a/src/librustc/middle/trans/foreign.rs +++ b/src/librustc/middle/trans/foreign.rs @@ -287,7 +287,7 @@ pub fn trans_foreign_mod(ccx: @mut CrateContext, Some(abi) => abi, }; - for foreign_mod.items.iter().advance |&foreign_item| { + foreach &foreign_item in foreign_mod.items.iter() { match foreign_item.node { ast::foreign_item_fn(*) => { let id = foreign_item.id; @@ -513,7 +513,7 @@ pub fn trans_foreign_mod(ccx: @mut CrateContext, store_inbounds(bcx, llargval, llargbundle, [0u, i]); } - for bcx.fcx.llretptr.iter().advance |&retptr| { + foreach &retptr in bcx.fcx.llretptr.iter() { store_inbounds(bcx, retptr, llargbundle, [0u, n]); } } @@ -523,7 +523,7 @@ pub fn trans_foreign_mod(ccx: @mut CrateContext, llargbundle: ValueRef) { let _icx = push_ctxt("foreign::wrap::build_ret"); let arg_count = shim_types.fn_sig.inputs.len(); - for bcx.fcx.llretptr.iter().advance |&retptr| { + foreach &retptr in bcx.fcx.llretptr.iter() { let llretptr = load_inbounds(bcx, llargbundle, [0, arg_count]); Store(bcx, Load(bcx, llretptr), retptr); } diff --git a/src/librustc/middle/trans/glue.rs b/src/librustc/middle/trans/glue.rs index b052993012d..b9c20893c8e 100644 --- a/src/librustc/middle/trans/glue.rs +++ b/src/librustc/middle/trans/glue.rs @@ -426,7 +426,7 @@ pub fn trans_struct_drop_flag(bcx: @mut Block, t: ty::t, v0: ValueRef, dtor_did: // Drop the fields let field_tys = ty::struct_fields(bcx.tcx(), class_did, substs); - for field_tys.iter().enumerate().advance |(i, fld)| { + foreach (i, fld) in field_tys.iter().enumerate() { let llfld_a = adt::trans_field_ptr(bcx, repr, v0, 0, i); bcx = drop_ty(bcx, llfld_a, fld.mt.ty); } @@ -461,7 +461,7 @@ pub fn trans_struct_drop(mut bcx: @mut Block, t: ty::t, v0: ValueRef, dtor_did: // Drop the fields let field_tys = ty::struct_fields(bcx.tcx(), class_did, substs); - for field_tys.iter().enumerate().advance |(i, fld)| { + foreach (i, fld) in field_tys.iter().enumerate() { let llfld_a = adt::trans_field_ptr(bcx, repr, v0, 0, i); bcx = drop_ty(bcx, llfld_a, fld.mt.ty); } diff --git a/src/librustc/middle/trans/inline.rs b/src/librustc/middle/trans/inline.rs index c91be89b30b..32d50ef9fd3 100644 --- a/src/librustc/middle/trans/inline.rs +++ b/src/librustc/middle/trans/inline.rs @@ -68,7 +68,7 @@ pub fn maybe_instantiate_inline(ccx: @mut CrateContext, fn_id: ast::def_id) ast::item_enum(_, _) => { let vs_here = ty::enum_variants(ccx.tcx, local_def(item.id)); let vs_there = ty::enum_variants(ccx.tcx, parent_id); - for vs_here.iter().zip(vs_there.iter()).advance |(here, there)| { + foreach (here, there) in vs_here.iter().zip(vs_there.iter()) { if there.id == fn_id { my_id = here.id.node; } ccx.external.insert(there.id, Some(here.id.node)); } diff --git a/src/librustc/middle/trans/meth.rs b/src/librustc/middle/trans/meth.rs index 3547745794e..debaf0f04a7 100644 --- a/src/librustc/middle/trans/meth.rs +++ b/src/librustc/middle/trans/meth.rs @@ -57,7 +57,7 @@ pub fn trans_impl(ccx: @mut CrateContext, if !generics.ty_params.is_empty() { return; } let sub_path = vec::append_one(path, path_name(name)); - for methods.iter().advance |method| { + foreach method in methods.iter() { if method.generics.ty_params.len() == 0u { let llfn = get_item_val(ccx, method.id); let path = vec::append_one(sub_path.clone(), @@ -599,7 +599,7 @@ pub fn make_vtable(ccx: &mut CrateContext, let _icx = push_ctxt("impl::make_vtable"); let mut components = ~[ tydesc.tydesc ]; - for ptrs.iter().advance |&ptr| { + foreach &ptr in ptrs.iter() { components.push(ptr) } diff --git a/src/librustc/middle/trans/monomorphize.rs b/src/librustc/middle/trans/monomorphize.rs index ac3e06e3495..272c72f03ea 100644 --- a/src/librustc/middle/trans/monomorphize.rs +++ b/src/librustc/middle/trans/monomorphize.rs @@ -75,8 +75,8 @@ pub fn monomorphic_fn(ccx: @mut CrateContext, self_vtables: self_vtables }; - for real_substs.tps.iter().advance |s| { assert!(!ty::type_has_params(*s)); } - for psubsts.tys.iter().advance |s| { assert!(!ty::type_has_params(*s)); } + foreach s in real_substs.tps.iter() { assert!(!ty::type_has_params(*s)); } + foreach s in psubsts.tys.iter() { assert!(!ty::type_has_params(*s)); } let param_uses = type_use::type_uses_for(ccx, fn_id, psubsts.tys.len()); diff --git a/src/librustc/middle/trans/reflect.rs b/src/librustc/middle/trans/reflect.rs index 3d23828979f..93b2e8a6665 100644 --- a/src/librustc/middle/trans/reflect.rs +++ b/src/librustc/middle/trans/reflect.rs @@ -96,7 +96,7 @@ impl Reflector { let v = self.visitor_val; debug!("passing %u args:", args.len()); let mut bcx = self.bcx; - for args.iter().enumerate().advance |(i, a)| { + foreach (i, a) in args.iter().enumerate() { debug!("arg %u: %s", i, bcx.val_to_str(*a)); } let bool_ty = ty::mk_bool(); @@ -214,7 +214,7 @@ impl Reflector { let extra = ~[self.c_uint(tys.len())] + self.c_size_and_align(t); do self.bracketed("tup", extra) |this| { - for tys.iter().enumerate().advance |(i, t)| { + foreach (i, t) in tys.iter().enumerate() { let extra = ~[this.c_uint(i), this.c_tydesc(*t)]; this.visit("tup_field", extra); } @@ -259,7 +259,7 @@ impl Reflector { let extra = ~[self.c_uint(fields.len())] + self.c_size_and_align(t); do self.bracketed("class", extra) |this| { - for fields.iter().enumerate().advance |(i, field)| { + foreach (i, field) in fields.iter().enumerate() { let extra = ~[this.c_uint(i), this.c_slice( bcx.ccx().sess.str_of(field.ident))] @@ -318,14 +318,14 @@ impl Reflector { let enum_args = ~[self.c_uint(variants.len()), make_get_disr()] + self.c_size_and_align(t); do self.bracketed("enum", enum_args) |this| { - for variants.iter().enumerate().advance |(i, v)| { + foreach (i, v) in variants.iter().enumerate() { let name = ccx.sess.str_of(v.name); let variant_args = ~[this.c_uint(i), this.c_uint(v.disr_val), this.c_uint(v.args.len()), this.c_slice(name)]; do this.bracketed("enum_variant", variant_args) |this| { - for v.args.iter().enumerate().advance |(j, a)| { + foreach (j, a) in v.args.iter().enumerate() { let bcx = this.bcx; let null = C_null(llptrty); let ptr = adt::trans_field_ptr(bcx, repr, null, v.disr_val, j); @@ -360,7 +360,7 @@ impl Reflector { } pub fn visit_sig(&mut self, retval: uint, sig: &ty::FnSig) { - for sig.inputs.iter().enumerate().advance |(i, arg)| { + foreach (i, arg) in sig.inputs.iter().enumerate() { let modeval = 5u; // "by copy" let extra = ~[self.c_uint(i), self.c_uint(modeval), diff --git a/src/librustc/middle/trans/tvec.rs b/src/librustc/middle/trans/tvec.rs index 2f29d92574c..b37a99771bd 100644 --- a/src/librustc/middle/trans/tvec.rs +++ b/src/librustc/middle/trans/tvec.rs @@ -374,14 +374,14 @@ pub fn write_content(bcx: @mut Block, ast::expr_vec(ref elements, _) => { match dest { Ignore => { - for elements.iter().advance |element| { + foreach element in elements.iter() { bcx = expr::trans_into(bcx, *element, Ignore); } } SaveIn(lldest) => { let mut temp_cleanups = ~[]; - for elements.iter().enumerate().advance |(i, element)| { + foreach (i, element) in elements.iter().enumerate() { let lleltptr = GEPi(bcx, lldest, [i]); debug!("writing index %? with lleltptr=%?", i, bcx.val_to_str(lleltptr)); @@ -390,7 +390,7 @@ pub fn write_content(bcx: @mut Block, add_clean_temp_mem(bcx, lleltptr, vt.unit_ty); temp_cleanups.push(lleltptr); } - for temp_cleanups.iter().advance |cleanup| { + foreach cleanup in temp_cleanups.iter() { revoke_clean(bcx, *cleanup); } } diff --git a/src/librustc/middle/trans/type_use.rs b/src/librustc/middle/trans/type_use.rs index 0d3a8039d90..52db07f2428 100644 --- a/src/librustc/middle/trans/type_use.rs +++ b/src/librustc/middle/trans/type_use.rs @@ -194,7 +194,7 @@ pub fn type_uses_for(ccx: @mut CrateContext, fn_id: def_id, n_tps: uint) match ty::get(ty::lookup_item_type(cx.ccx.tcx, fn_id).ty).sty { ty::ty_bare_fn(ty::BareFnTy {sig: ref sig, _}) | ty::ty_closure(ty::ClosureTy {sig: ref sig, _}) => { - for sig.inputs.iter().advance |arg| { + foreach arg in sig.inputs.iter() { type_needs(&cx, use_repr, *arg); } } @@ -241,8 +241,8 @@ pub fn type_needs_inner(cx: &Context, if list::find(enums_seen, |id| *id == did).is_none() { let seen = @Cons(did, enums_seen); let r = ty::enum_variants(cx.ccx.tcx, did); - for r.iter().advance |v| { - for v.args.iter().advance |aty| { + foreach v in r.iter() { + foreach aty in v.args.iter() { let t = ty::subst(cx.ccx.tcx, &(*substs), *aty); type_needs_inner(cx, use_, t, seen); } @@ -268,7 +268,7 @@ pub fn mark_for_method_call(cx: &Context, e_id: NodeId, callee_id: NodeId) { let mut opt_static_did = None; { let r = cx.ccx.maps.method_map.find(&e_id); - for r.iter().advance |mth| { + foreach mth in r.iter() { match mth.origin { typeck::method_static(did) => { opt_static_did = Some(did); @@ -288,12 +288,12 @@ pub fn mark_for_method_call(cx: &Context, e_id: NodeId, callee_id: NodeId) { // above because the recursive call to `type_needs` can trigger // inlining and hence can cause `method_map` and // `node_type_substs` to be modified. - for opt_static_did.iter().advance |&did| { + foreach &did in opt_static_did.iter() { { let r = cx.ccx.tcx.node_type_substs.find_copy(&callee_id); - for r.iter().advance |ts| { + foreach ts in r.iter() { let type_uses = type_uses_for(cx.ccx, did, ts.len()); - for type_uses.iter().zip(ts.iter()).advance |(uses, subst)| { + foreach (uses, subst) in type_uses.iter().zip(ts.iter()) { type_needs(cx, *uses, *subst) } } @@ -329,10 +329,10 @@ pub fn mark_for_expr(cx: &Context, e: &expr) { } expr_path(_) | expr_self => { let opt_ts = cx.ccx.tcx.node_type_substs.find_copy(&e.id); - for opt_ts.iter().advance |ts| { + foreach ts in opt_ts.iter() { let id = ast_util::def_id_of_def(cx.ccx.tcx.def_map.get_copy(&e.id)); let uses_for_ts = type_uses_for(cx.ccx, id, ts.len()); - for uses_for_ts.iter().zip(ts.iter()).advance |(uses, subst)| { + foreach (uses, subst) in uses_for_ts.iter().zip(ts.iter()) { type_needs(cx, *uses, *subst) } } @@ -341,7 +341,7 @@ pub fn mark_for_expr(cx: &Context, e: &expr) { match ty::ty_closure_sigil(ty::expr_ty(cx.ccx.tcx, e)) { ast::OwnedSigil => {} ast::BorrowedSigil | ast::ManagedSigil => { - for freevars::get_freevars(cx.ccx.tcx, e.id).iter().advance |fv| { + foreach fv in freevars::get_freevars(cx.ccx.tcx, e.id).iter() { let node_id = ast_util::def_id_of_def(fv.def).node; node_type_needs(cx, use_repr, node_id); } @@ -372,7 +372,7 @@ pub fn mark_for_expr(cx: &Context, e: &expr) { } expr_call(f, _, _) => { let r = ty::ty_fn_args(ty::node_id_to_type(cx.ccx.tcx, f.id)); - for r.iter().advance |a| { + foreach a in r.iter() { type_needs(cx, use_repr, *a); } } @@ -381,17 +381,17 @@ pub fn mark_for_expr(cx: &Context, e: &expr) { type_needs(cx, use_repr, ty::type_autoderef(cx.ccx.tcx, base_ty)); let r = ty::ty_fn_args(ty::node_id_to_type(cx.ccx.tcx, callee_id)); - for r.iter().advance |a| { + foreach a in r.iter() { type_needs(cx, use_repr, *a); } mark_for_method_call(cx, e.id, callee_id); } expr_inline_asm(ref ia) => { - for ia.inputs.iter().advance |&(_, input)| { + foreach &(_, input) in ia.inputs.iter() { node_type_needs(cx, use_repr, input.id); } - for ia.outputs.iter().advance |&(_, out)| { + foreach &(_, out) in ia.outputs.iter() { node_type_needs(cx, use_repr, out.id); } } @@ -423,7 +423,7 @@ pub fn handle_body(cx: &Context, body: &Block) { }, visit_block: |b, (cx, v)| { visit::visit_block(b, (cx, v)); - for b.expr.iter().advance |e| { + foreach e in b.expr.iter() { node_type_needs(cx, use_repr, e.id); } }, diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index 3ec66aff176..1215097025f 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -959,11 +959,11 @@ fn mk_t(cx: ctxt, st: sty) -> t { } fn sflags(substs: &substs) -> uint { let mut f = 0u; - for substs.tps.iter().advance |tt| { f |= get(*tt).flags; } + foreach tt in substs.tps.iter() { f |= get(*tt).flags; } match substs.regions { ErasedRegions => {} NonerasedRegions(ref regions) => { - for regions.iter().advance |r| { + foreach r in regions.iter() { f |= rflags(*r) } } @@ -1005,16 +1005,16 @@ fn mk_t(cx: ctxt, st: sty) -> t { flags |= rflags(r); flags |= get(m.ty).flags; } - &ty_tup(ref ts) => for ts.iter().advance |tt| { flags |= get(*tt).flags; }, + &ty_tup(ref ts) => foreach tt in ts.iter() { flags |= get(*tt).flags; }, &ty_bare_fn(ref f) => { - for f.sig.inputs.iter().advance |a| { flags |= get(*a).flags; } - flags |= get(f.sig.output).flags; - // T -> _|_ is *not* _|_ ! - flags &= !(has_ty_bot as uint); + foreach a in f.sig.inputs.iter() { flags |= get(*a).flags; } + flags |= get(f.sig.output).flags; + // T -> _|_ is *not* _|_ ! + flags &= !(has_ty_bot as uint); } &ty_closure(ref f) => { flags |= rflags(f.region); - for f.sig.inputs.iter().advance |a| { flags |= get(*a).flags; } + foreach a in f.sig.inputs.iter() { flags |= get(*a).flags; } flags |= get(f.sig.output).flags; // T -> _|_ is *not* _|_ ! flags &= !(has_ty_bot as uint); @@ -1269,15 +1269,15 @@ pub fn maybe_walk_ty(ty: t, f: &fn(t) -> bool) { } ty_enum(_, ref substs) | ty_struct(_, ref substs) | ty_trait(_, ref substs, _, _, _) => { - for (*substs).tps.iter().advance |subty| { maybe_walk_ty(*subty, |x| f(x)); } + foreach subty in (*substs).tps.iter() { maybe_walk_ty(*subty, |x| f(x)); } } - ty_tup(ref ts) => { for ts.iter().advance |tt| { maybe_walk_ty(*tt, |x| f(x)); } } + ty_tup(ref ts) => { foreach tt in ts.iter() { maybe_walk_ty(*tt, |x| f(x)); } } ty_bare_fn(ref ft) => { - for ft.sig.inputs.iter().advance |a| { maybe_walk_ty(*a, |x| f(x)); } + foreach a in ft.sig.inputs.iter() { maybe_walk_ty(*a, |x| f(x)); } maybe_walk_ty(ft.sig.output, f); } ty_closure(ref ft) => { - for ft.sig.inputs.iter().advance |a| { maybe_walk_ty(*a, |x| f(x)); } + foreach a in ft.sig.inputs.iter() { maybe_walk_ty(*a, |x| f(x)); } maybe_walk_ty(ft.sig.output, f); } } @@ -1766,8 +1766,8 @@ fn type_needs_unwind_cleanup_(cx: ctxt, ty: t, true } ty_enum(did, ref substs) => { - for (*enum_variants(cx, did)).iter().advance |v| { - for v.args.iter().advance |aty| { + foreach v in (*enum_variants(cx, did)).iter() { + foreach aty in v.args.iter() { let t = subst(cx, substs, *aty); needs_unwind_cleanup |= type_needs_unwind_cleanup_(cx, t, tycache, @@ -2435,8 +2435,8 @@ pub fn type_structurally_contains(cx: ctxt, if test(sty) { return true; } match *sty { ty_enum(did, ref substs) => { - for (*enum_variants(cx, did)).iter().advance |variant| { - for variant.args.iter().advance |aty| { + foreach variant in (*enum_variants(cx, did)).iter() { + foreach aty in variant.args.iter() { let sty = subst(cx, substs, *aty); if type_structurally_contains(cx, sty, |x| test(x)) { return true; } } @@ -2445,7 +2445,7 @@ pub fn type_structurally_contains(cx: ctxt, } ty_struct(did, ref substs) => { let r = lookup_struct_fields(cx, did); - for r.iter().advance |field| { + foreach field in r.iter() { let ft = lookup_field_type(cx, did, field.id, substs); if type_structurally_contains(cx, ft, |x| test(x)) { return true; } } @@ -2453,7 +2453,7 @@ pub fn type_structurally_contains(cx: ctxt, } ty_tup(ref ts) => { - for ts.iter().advance |tt| { + foreach tt in ts.iter() { if type_structurally_contains(cx, *tt, |x| test(x)) { return true; } } return false; @@ -2532,7 +2532,7 @@ pub fn type_is_pod(cx: ctxt, ty: t) -> bool { // Structural types ty_enum(did, ref substs) => { let variants = enum_variants(cx, did); - for (*variants).iter().advance |variant| { + foreach variant in (*variants).iter() { // XXX(pcwalton): This is an inefficient way to do this. Don't // synthesize a tuple! // @@ -2543,7 +2543,7 @@ pub fn type_is_pod(cx: ctxt, ty: t) -> bool { } } ty_tup(ref elts) => { - for elts.iter().advance |elt| { if !type_is_pod(cx, *elt) { result = false; } } + foreach elt in elts.iter() { if !type_is_pod(cx, *elt) { result = false; } } } ty_estr(vstore_fixed(_)) => result = true, ty_evec(ref mt, vstore_fixed(_)) | ty_unboxed_vec(ref mt) => { @@ -3273,14 +3273,14 @@ pub fn stmt_node_id(s: &ast::stmt) -> ast::NodeId { pub fn field_idx(id: ast::ident, fields: &[field]) -> Option { let mut i = 0u; - for fields.iter().advance |f| { if f.ident == id { return Some(i); } i += 1u; } + foreach f in fields.iter() { if f.ident == id { return Some(i); } i += 1u; } return None; } pub fn field_idx_strict(tcx: ty::ctxt, id: ast::ident, fields: &[field]) -> uint { let mut i = 0u; - for fields.iter().advance |f| { if f.ident == id { return i; } i += 1u; } + foreach f in fields.iter() { if f.ident == id { return i; } i += 1u; } tcx.sess.bug(fmt!( "No field named `%s` found in the list of fields `%?`", tcx.sess.str_of(id), @@ -4383,7 +4383,7 @@ pub fn determine_inherited_purity(parent: (ast::purity, ast::NodeId), pub fn each_bound_trait_and_supertraits(tcx: ctxt, bounds: &[@TraitRef], f: &fn(@TraitRef) -> bool) -> bool { - for bounds.iter().advance |&bound_trait_ref| { + foreach &bound_trait_ref in bounds.iter() { let mut supertrait_set = HashMap::new(); let mut trait_refs = ~[]; let mut i = 0; @@ -4403,7 +4403,7 @@ pub fn each_bound_trait_and_supertraits(tcx: ctxt, // Add supertraits to supertrait_set let supertrait_refs = trait_ref_supertraits(tcx, trait_refs[i]); - for supertrait_refs.iter().advance |&supertrait_ref| { + foreach &supertrait_ref in supertrait_refs.iter() { debug!("each_bound_trait_and_supertraits(supertrait_ref=%s)", supertrait_ref.repr(tcx)); @@ -4424,7 +4424,7 @@ pub fn each_bound_trait_and_supertraits(tcx: ctxt, pub fn count_traits_and_supertraits(tcx: ctxt, type_param_defs: &[TypeParameterDef]) -> uint { let mut total = 0; - for type_param_defs.iter().advance |type_param_def| { + foreach type_param_def in type_param_defs.iter() { for each_bound_trait_and_supertraits( tcx, type_param_def.bounds.trait_bounds) |_| { total += 1; diff --git a/src/librustc/middle/typeck/astconv.rs b/src/librustc/middle/typeck/astconv.rs index a506142a971..8a8b3a07c5d 100644 --- a/src/librustc/middle/typeck/astconv.rs +++ b/src/librustc/middle/typeck/astconv.rs @@ -768,7 +768,7 @@ fn conv_builtin_bounds(tcx: ty::ctxt, ast_bounds: &Option { let mut builtin_bounds = ty::EmptyBuiltinBounds(); - for bound_vec.iter().advance |ast_bound| { + foreach ast_bound in bound_vec.iter() { match *ast_bound { ast::TraitTyParamBound(ref b) => { match lookup_def_tcx(tcx, b.path.span, b.ref_id) { diff --git a/src/librustc/middle/typeck/check/_match.rs b/src/librustc/middle/typeck/check/_match.rs index 5853d6b9b0a..9555a58fff3 100644 --- a/src/librustc/middle/typeck/check/_match.rs +++ b/src/librustc/middle/typeck/check/_match.rs @@ -35,13 +35,13 @@ pub fn check_match(fcx: @mut FnCtxt, // Typecheck the patterns first, so that we get types for all the // bindings. - for arms.iter().advance |arm| { + foreach arm in arms.iter() { let pcx = pat_ctxt { fcx: fcx, map: pat_id_map(tcx.def_map, arm.pats[0]), }; - for arm.pats.iter().advance |p| { check_pat(&pcx, *p, discrim_ty);} + foreach p in arm.pats.iter() { check_pat(&pcx, *p, discrim_ty);} } // The result of the match is the common supertype of all the @@ -55,7 +55,7 @@ pub fn check_match(fcx: @mut FnCtxt, // Now typecheck the blocks. let mut saw_err = ty::type_is_error(discrim_ty); - for arms.iter().advance |arm| { + foreach arm in arms.iter() { let mut guard_err = false; let mut guard_bot = false; match arm.guard { @@ -239,8 +239,8 @@ pub fn check_pat_variant(pcx: &pat_ctxt, pat: @ast::pat, path: &ast::Path, } if !error_happened { - for subpats.iter().advance |pats| { - for pats.iter().zip(arg_types.iter()).advance |(subpat, arg_ty)| { + foreach pats in subpats.iter() { + foreach (subpat, arg_ty) in pats.iter().zip(arg_types.iter()) { check_pat(pcx, *subpat, *arg_ty); } } @@ -256,8 +256,8 @@ pub fn check_pat_variant(pcx: &pat_ctxt, pat: @ast::pat, path: &ast::Path, } if error_happened { - for subpats.iter().advance |pats| { - for pats.iter().advance |pat| { + foreach pats in subpats.iter() { + foreach pat in pats.iter() { check_pat(pcx, *pat, ty::mk_err()); } } @@ -283,13 +283,13 @@ pub fn check_struct_pat_fields(pcx: &pat_ctxt, // Index the class fields. let mut field_map = HashMap::new(); - for class_fields.iter().enumerate().advance |(i, class_field)| { + foreach (i, class_field) in class_fields.iter().enumerate() { field_map.insert(class_field.ident, i); } // Typecheck each field. let mut found_fields = HashSet::new(); - for fields.iter().advance |field| { + foreach field in fields.iter() { match field_map.find(&field.ident) { Some(&index) => { let class_field = class_fields[index]; @@ -312,7 +312,7 @@ pub fn check_struct_pat_fields(pcx: &pat_ctxt, // Report an error if not all the fields were specified. if !etc { - for class_fields.iter().enumerate().advance |(i, field)| { + foreach (i, field) in class_fields.iter().enumerate() { if found_fields.contains(&i) { loop; } @@ -518,13 +518,13 @@ pub fn check_pat(pcx: &pat_ctxt, pat: @ast::pat, expected: ty::t) { let e_count = elts.len(); match *s { ty::ty_tup(ref ex_elts) if e_count == ex_elts.len() => { - for elts.iter().enumerate().advance |(i, elt)| { + foreach (i, elt) in elts.iter().enumerate() { check_pat(pcx, *elt, ex_elts[i]); } fcx.write_ty(pat.id, expected); } _ => { - for elts.iter().advance |elt| { + foreach elt in elts.iter() { check_pat(pcx, *elt, ty::mk_err()); } // use terr_tuple_size if both types are tuples @@ -572,13 +572,13 @@ pub fn check_pat(pcx: &pat_ctxt, pat: @ast::pat, expected: ty::t) { (mt, default_region_var) }, _ => { - for before.iter().advance |&elt| { + foreach &elt in before.iter() { check_pat(pcx, elt, ty::mk_err()); } - for slice.iter().advance |&elt| { + foreach &elt in slice.iter() { check_pat(pcx, elt, ty::mk_err()); } - for after.iter().advance |&elt| { + foreach &elt in after.iter() { check_pat(pcx, elt, ty::mk_err()); } fcx.infcx().type_error_message_str_with_expected( @@ -594,7 +594,7 @@ pub fn check_pat(pcx: &pat_ctxt, pat: @ast::pat, expected: ty::t) { return; } }; - for before.iter().advance |elt| { + foreach elt in before.iter() { check_pat(pcx, *elt, elt_type.ty); } match slice { @@ -607,7 +607,7 @@ pub fn check_pat(pcx: &pat_ctxt, pat: @ast::pat, expected: ty::t) { } None => () } - for after.iter().advance |elt| { + foreach elt in after.iter() { check_pat(pcx, *elt, elt_type.ty); } fcx.write_ty(pat.id, expected); diff --git a/src/librustc/middle/typeck/check/method.rs b/src/librustc/middle/typeck/check/method.rs index 0df3a0e839b..51d454e45a0 100644 --- a/src/librustc/middle/typeck/check/method.rs +++ b/src/librustc/middle/typeck/check/method.rs @@ -314,12 +314,12 @@ impl<'self> LookupContext<'self> { // candidates. let trait_map: &mut resolve::TraitMap = &mut self.fcx.ccx.trait_map; let opt_applicable_traits = trait_map.find(&self.expr.id); - for opt_applicable_traits.iter().advance |applicable_traits| { - for applicable_traits.iter().advance |trait_did| { + foreach applicable_traits in opt_applicable_traits.iter() { + foreach trait_did in applicable_traits.iter() { // Look for explicit implementations. let opt_impl_infos = self.tcx().trait_impls.find(trait_did); - for opt_impl_infos.iter().advance |impl_infos| { - for impl_infos.iter().advance |impl_info| { + foreach impl_infos in opt_impl_infos.iter() { + foreach impl_info in impl_infos.iter() { self.push_candidates_from_impl( self.extension_candidates, *impl_info); @@ -464,8 +464,8 @@ impl<'self> LookupContext<'self> { pub fn push_inherent_impl_candidates_for_type(&self, did: def_id) { let opt_impl_infos = self.tcx().inherent_impls.find(&did); - for opt_impl_infos.iter().advance |impl_infos| { - for impl_infos.iter().advance |impl_info| { + foreach impl_infos in opt_impl_infos.iter() { + foreach impl_info in impl_infos.iter() { self.push_candidates_from_impl( self.inherent_candidates, *impl_info); } @@ -711,7 +711,7 @@ impl<'self> LookupContext<'self> { let region = self.infcx().next_region_var( infer::Autoref(self.expr.span)); - for mutbls.iter().advance |mutbl| { + foreach mutbl in mutbls.iter() { let autoref_ty = mk_autoref_ty(*mutbl, region); match self.search_for_method(autoref_ty) { None => {} diff --git a/src/librustc/middle/typeck/check/mod.rs b/src/librustc/middle/typeck/check/mod.rs index 61801404148..a8d1a1d49d7 100644 --- a/src/librustc/middle/typeck/check/mod.rs +++ b/src/librustc/middle/typeck/check/mod.rs @@ -428,10 +428,10 @@ pub fn check_fn(ccx: @mut CrateCtxt, None => () } - for opt_self_info.iter().advance |self_info| { + foreach self_info in opt_self_info.iter() { fcx.write_ty(self_info.self_id, self_info.self_ty); } - for decl.inputs.iter().zip(arg_tys.iter()).advance |(input, arg)| { + foreach (input, arg) in decl.inputs.iter().zip(arg_tys.iter()) { fcx.write_ty(input.id, *arg); } @@ -460,7 +460,7 @@ pub fn check_fn(ccx: @mut CrateCtxt, }; // Add the self parameter - for opt_self_info.iter().advance |self_info| { + foreach self_info in opt_self_info.iter() { assign(self_info.self_id, Some(self_info.self_ty)); debug!("self is assigned to %s", fcx.infcx().ty_to_str( @@ -468,7 +468,7 @@ pub fn check_fn(ccx: @mut CrateCtxt, } // Add formal parameters. - for arg_tys.iter().zip(decl.inputs.iter()).advance |(arg_ty, input)| { + foreach (arg_ty, input) in arg_tys.iter().zip(decl.inputs.iter()) { // Create type variables for each argument. do pat_util::pat_bindings(tcx.def_map, input.pat) |_bm, pat_id, _sp, _path| { @@ -566,7 +566,7 @@ pub fn check_no_duplicate_fields(tcx: ty::ctxt, fields: ~[(ast::ident, span)]) { let mut field_names = HashMap::new(); - for fields.iter().advance |p| { + foreach p in fields.iter() { let (id, sp) = *p; let orig_sp = field_names.find(&id).map_consume(|x| *x); match orig_sp { @@ -615,13 +615,13 @@ pub fn check_item(ccx: @mut CrateCtxt, it: @ast::item) { let rp = ccx.tcx.region_paramd_items.find(&it.id).map_consume(|x| *x); debug!("item_impl %s with id %d rp %?", ccx.tcx.sess.str_of(it.ident), it.id, rp); - for ms.iter().advance |m| { + foreach m in ms.iter() { check_method(ccx, *m); } vtable::resolve_impl(ccx, it); } ast::item_trait(_, _, ref trait_methods) => { - for (*trait_methods).iter().advance |trait_method| { + foreach trait_method in (*trait_methods).iter() { match *trait_method { required(*) => { // Nothing to do, since required methods don't have @@ -642,11 +642,11 @@ pub fn check_item(ccx: @mut CrateCtxt, it: @ast::item) { } ast::item_foreign_mod(ref m) => { if m.abis.is_intrinsic() { - for m.items.iter().advance |item| { + foreach item in m.items.iter() { check_intrinsic_type(ccx, *item); } } else { - for m.items.iter().advance |item| { + foreach item in m.items.iter() { let tpt = ty::lookup_item_type(ccx.tcx, local_def(item.id)); if tpt.generics.has_type_params() { ccx.tcx.sess.span_err( @@ -1257,7 +1257,7 @@ pub fn check_expr_with_unifier(fcx: @mut FnCtxt, // of arguments when we typecheck the functions. This isn't really the // right way to do this. let xs = [false, true]; - for xs.iter().advance |check_blocks| { + foreach check_blocks in xs.iter() { let check_blocks = *check_blocks; debug!("check_blocks=%b", check_blocks); @@ -1268,7 +1268,7 @@ pub fn check_expr_with_unifier(fcx: @mut FnCtxt, vtable::early_resolve_expr(callee_expr, fcx, true); } - for args.iter().enumerate().advance |(i, arg)| { + foreach (i, arg) in args.iter().enumerate() { let is_block = match arg.node { ast::expr_fn_block(*) | ast::expr_loop_body(*) | ast::expr_do_body(*) => true, @@ -1883,14 +1883,14 @@ pub fn check_expr_with_unifier(fcx: @mut FnCtxt, let mut class_field_map = HashMap::new(); let mut fields_found = 0; - for field_types.iter().advance |field| { + foreach field in field_types.iter() { class_field_map.insert(field.ident, (field.id, false)); } let mut error_happened = false; // Typecheck each field. - for ast_fields.iter().advance |field| { + foreach field in ast_fields.iter() { let mut expected_field_type = ty::mk_err(); let pair = class_field_map.find(&field.ident). @@ -1936,7 +1936,7 @@ pub fn check_expr_with_unifier(fcx: @mut FnCtxt, assert!(fields_found <= field_types.len()); if fields_found < field_types.len() { let mut missing_fields = ~[]; - for field_types.iter().advance |class_field| { + foreach class_field in field_types.iter() { let name = class_field.ident; let (_, seen) = *class_field_map.get(&name); if !seen { @@ -2258,7 +2258,7 @@ pub fn check_expr_with_unifier(fcx: @mut FnCtxt, _ => mutability = mutbl } let t: ty::t = fcx.infcx().next_ty_var(); - for args.iter().advance |e| { + foreach e in args.iter() { check_expr_has_type(fcx, *e, t); let arg_t = fcx.expr_ty(*e); if ty::type_is_error(arg_t) { @@ -2478,10 +2478,10 @@ pub fn check_expr_with_unifier(fcx: @mut FnCtxt, fcx.write_ty(id, ty_param_bounds_and_ty.ty); } ast::expr_inline_asm(ref ia) => { - for ia.inputs.iter().advance |&(_, input)| { + foreach &(_, input) in ia.inputs.iter() { check_expr(fcx, input); } - for ia.outputs.iter().advance |&(_, out)| { + foreach &(_, out) in ia.outputs.iter() { check_expr(fcx, out); } fcx.write_nil(id); @@ -2748,7 +2748,7 @@ pub fn check_expr_with_unifier(fcx: @mut FnCtxt, let t: ty::t = fcx.infcx().next_ty_var(); let mut arg_is_bot = false; let mut arg_is_err = false; - for args.iter().advance |e| { + foreach e in args.iter() { check_expr_has_type(fcx, *e, t); let arg_t = fcx.expr_ty(*e); arg_is_bot |= ty::type_is_bot(arg_t); @@ -3009,7 +3009,7 @@ pub fn check_block_with_expected(fcx: @mut FnCtxt, let mut last_was_bot = false; let mut any_bot = false; let mut any_err = false; - for blk.stmts.iter().advance |s| { + foreach s in blk.stmts.iter() { check_stmt(fcx, *s); let s_id = ast_util::stmt_id(*s); let s_ty = fcx.node_ty(s_id); @@ -3148,7 +3148,7 @@ pub fn check_enum_variants(ccx: @mut CrateCtxt, let mut disr_vals: ~[uint] = ~[]; let mut prev_disr_val: Option = None; - for vs.iter().advance |v| { + foreach v in vs.iter() { // If the discriminant value is specified explicitly in the enum check whether the // initialization expression is valid, otherwise use the last value plus one. @@ -3476,7 +3476,7 @@ pub fn check_bounds_are_used(ccx: @mut CrateCtxt, true }); - for tps_used.iter().enumerate().advance |(i, b)| { + foreach (i, b) in tps_used.iter().enumerate() { if !*b { ccx.tcx.sess.span_err( span, fmt!("type parameter `%s` is unused", diff --git a/src/librustc/middle/typeck/check/regionck.rs b/src/librustc/middle/typeck/check/regionck.rs index 422f59c14ea..d09ca1c25e4 100644 --- a/src/librustc/middle/typeck/check/regionck.rs +++ b/src/librustc/middle/typeck/check/regionck.rs @@ -194,7 +194,7 @@ fn visit_block(b: &ast::Block, (rcx, v): (@mut Rcx, rvt)) { fn visit_arm(arm: &ast::arm, (rcx, v): (@mut Rcx, rvt)) { // see above - for arm.pats.iter().advance |&p| { + foreach &p in arm.pats.iter() { constrain_bindings_in_pat(p, rcx); } @@ -280,8 +280,8 @@ fn visit_expr(expr: @ast::expr, (rcx, v): (@mut Rcx, rvt)) { } ast::expr_match(_, ref arms) => { tcx.region_maps.record_cleanup_scope(expr.id); - for arms.iter().advance |arm| { - for arm.guard.iter().advance |guard| { + foreach arm in arms.iter() { + foreach guard in arm.guard.iter() { tcx.region_maps.record_cleanup_scope(guard.id); } } @@ -299,7 +299,7 @@ fn visit_expr(expr: @ast::expr, (rcx, v): (@mut Rcx, rvt)) { // Check any autoderefs or autorefs that appear. { let r = rcx.fcx.inh.adjustments.find(&expr.id); - for r.iter().advance |&adjustment| { + foreach &adjustment in r.iter() { debug!("adjustment=%?", adjustment); match *adjustment { @ty::AutoDerefRef( @@ -307,7 +307,7 @@ fn visit_expr(expr: @ast::expr, (rcx, v): (@mut Rcx, rvt)) { { let expr_ty = rcx.resolve_node_type(expr.id); constrain_derefs(rcx, expr, autoderefs, expr_ty); - for opt_autoref.iter().advance |autoref| { + foreach autoref in opt_autoref.iter() { guarantor::for_autoref(rcx, expr, autoderefs, autoref); // Require that the resulting region encompasses @@ -555,7 +555,7 @@ fn constrain_call(rcx: @mut Rcx, let callee_scope = call_expr.id; let callee_region = ty::re_scope(callee_scope); - for arg_exprs.iter().advance |&arg_expr| { + foreach &arg_expr in arg_exprs.iter() { // ensure that any regions appearing in the argument type are // valid for at least the lifetime of the function: constrain_regions_in_type_of_node( @@ -572,7 +572,7 @@ fn constrain_call(rcx: @mut Rcx, } // as loop above, but for receiver - for receiver.iter().advance |&r| { + foreach &r in receiver.iter() { constrain_regions_in_type_of_node( rcx, r.id, callee_region, infer::CallRcvr(r.span)); if implicitly_ref_args { @@ -668,7 +668,7 @@ fn constrain_free_variables(rcx: @mut Rcx, let tcx = rcx.fcx.ccx.tcx; debug!("constrain_free_variables(%s, %s)", region.repr(tcx), expr.repr(tcx)); - for get_freevars(tcx, expr.id).iter().advance |freevar| { + foreach freevar in get_freevars(tcx, expr.id).iter() { debug!("freevar def is %?", freevar.def); let def = freevar.def; let en_region = encl_region_of_def(rcx.fcx, def); @@ -835,8 +835,8 @@ pub mod guarantor { debug!("regionck::for_match()"); let discr_guarantor = guarantor(rcx, discr); debug!("discr_guarantor=%s", discr_guarantor.repr(rcx.tcx())); - for arms.iter().advance |arm| { - for arm.pats.iter().advance |pat| { + foreach arm in arms.iter() { + foreach pat in arm.pats.iter() { link_ref_bindings_in_pat(rcx, *pat, discr_guarantor); } } @@ -886,7 +886,7 @@ pub mod guarantor { sub_region: ty::Region, sup_region: Option) { - for sup_region.iter().advance |r| { + foreach r in sup_region.iter() { rcx.fcx.mk_subr(true, infer::Reborrow(expr.span), sub_region, *r); } @@ -909,7 +909,7 @@ pub mod guarantor { debug!("guarantor::for_by_ref(expr=%?, callee_scope=%?) category=%?", expr.id, callee_scope, expr_cat); let minimum_lifetime = ty::re_scope(callee_scope); - for expr_cat.guarantor.iter().advance |guarantor| { + foreach guarantor in expr_cat.guarantor.iter() { mk_subregion_due_to_derefence(rcx, expr.span, minimum_lifetime, *guarantor); } @@ -1215,12 +1215,12 @@ pub mod guarantor { ast::pat_ident(ast::bind_by_ref(_), _, opt_p) => { link(rcx, pat.span, pat.id, guarantor); - for opt_p.iter().advance |p| { + foreach p in opt_p.iter() { link_ref_bindings_in_pat(rcx, *p, guarantor); } } ast::pat_ident(_, _, opt_p) => { - for opt_p.iter().advance |p| { + foreach p in opt_p.iter() { link_ref_bindings_in_pat(rcx, *p, guarantor); } } @@ -1229,7 +1229,7 @@ pub mod guarantor { link_ref_bindings_in_pats(rcx, pats, guarantor); } ast::pat_struct(_, ref fpats, _) => { - for fpats.iter().advance |fpat| { + foreach fpat in fpats.iter() { link_ref_bindings_in_pat(rcx, fpat.pat, guarantor); } } @@ -1259,7 +1259,7 @@ pub mod guarantor { }; link_ref_bindings_in_pats(rcx, before, guarantor1); - for slice.iter().advance |&p| { + foreach &p in slice.iter() { link_ref_bindings_in_pat(rcx, p, guarantor); } link_ref_bindings_in_pats(rcx, after, guarantor1); @@ -1270,7 +1270,7 @@ pub mod guarantor { fn link_ref_bindings_in_pats(rcx: @mut Rcx, pats: &~[@ast::pat], guarantor: Option) { - for pats.iter().advance |pat| { + foreach pat in pats.iter() { link_ref_bindings_in_pat(rcx, *pat, guarantor); } } diff --git a/src/librustc/middle/typeck/check/regionmanip.rs b/src/librustc/middle/typeck/check/regionmanip.rs index 02c003b7525..cefe0045cb0 100644 --- a/src/librustc/middle/typeck/check/regionmanip.rs +++ b/src/librustc/middle/typeck/check/regionmanip.rs @@ -32,11 +32,11 @@ pub fn replace_bound_regions_in_fn_sig( { let mut all_tys = ty::tys_in_fn_sig(fn_sig); - for opt_self_ty.iter().advance |&self_ty| { + foreach &self_ty in opt_self_ty.iter() { all_tys.push(self_ty); } - for opt_self_ty.iter().advance |&t| { all_tys.push(t) } + foreach &t in opt_self_ty.iter() { all_tys.push(t) } debug!("replace_bound_regions_in_fn_sig(self_ty=%?, fn_sig=%s, \ all_tys=%?)", @@ -199,7 +199,7 @@ pub fn relate_nested_regions( */ let mut the_stack = ~[]; - for opt_region.iter().advance |&r| { the_stack.push(r); } + foreach &r in opt_region.iter() { the_stack.push(r); } walk_ty(tcx, &mut the_stack, ty, relate_op); fn walk_ty(tcx: ty::ctxt, @@ -230,7 +230,7 @@ pub fn relate_nested_regions( r_sub: ty::Region, relate_op: &fn(ty::Region, ty::Region)) { - for the_stack.iter().advance |&r| { + foreach &r in the_stack.iter() { if !r.is_bound() && !r_sub.is_bound() { relate_op(r, r_sub); } @@ -258,14 +258,14 @@ pub fn relate_free_regions( debug!("relate_free_regions >>"); let mut all_tys = ~[]; - for fn_sig.inputs.iter().advance |arg| { + foreach arg in fn_sig.inputs.iter() { all_tys.push(*arg); } - for self_ty.iter().advance |&t| { + foreach &t in self_ty.iter() { all_tys.push(t); } - for all_tys.iter().advance |&t| { + foreach &t in all_tys.iter() { debug!("relate_free_regions(t=%s)", ppaux::ty_to_str(tcx, t)); relate_nested_regions(tcx, None, t, |a, b| { match (&a, &b) { diff --git a/src/librustc/middle/typeck/check/vtable.rs b/src/librustc/middle/typeck/check/vtable.rs index 3bae934f270..ec86945887e 100644 --- a/src/librustc/middle/typeck/check/vtable.rs +++ b/src/librustc/middle/typeck/check/vtable.rs @@ -324,7 +324,7 @@ fn search_for_vtable(vcx: &VtableContext, let impls = tcx.trait_impls.find(&trait_ref.def_id) .map_default(@mut ~[], |x| **x); // impls is the list of all impls in scope for trait_ref. - for impls.iter().advance |im| { + foreach im in impls.iter() { // im is one specific impl of trait_ref. // First, ensure we haven't processed this impl yet. diff --git a/src/librustc/middle/typeck/check/writeback.rs b/src/librustc/middle/typeck/check/writeback.rs index 5976cb2dda7..b46df585b73 100644 --- a/src/librustc/middle/typeck/check/writeback.rs +++ b/src/librustc/middle/typeck/check/writeback.rs @@ -66,7 +66,7 @@ fn resolve_method_map_entry(fcx: @mut FnCtxt, sp: span, id: ast::NodeId) { Some(mme) => { { let r = resolve_type_vars_in_type(fcx, sp, mme.self_ty); - for r.iter().advance |t| { + foreach t in r.iter() { let method_map = fcx.ccx.method_map; let new_entry = method_map_entry { self_ty: *t, ..*mme }; debug!("writeback::resolve_method_map_entry(id=%?, \ @@ -180,7 +180,7 @@ fn resolve_type_vars_for_node(wbcx: @mut WbCtxt, sp: span, id: ast::NodeId) write_ty_to_tcx(tcx, id, t); for fcx.opt_node_ty_substs(id) |substs| { let mut new_tps = ~[]; - for substs.tps.iter().advance |subst| { + foreach subst in substs.tps.iter() { match resolve_type_vars_in_type(fcx, sp, *subst) { Some(t) => new_tps.push(t), None => { wbcx.success = false; return None; } @@ -230,7 +230,7 @@ fn visit_expr(e: @ast::expr, (wbcx, v): (@mut WbCtxt, wb_vt)) { resolve_method_map_entry(wbcx.fcx, e.span, e.id); { let r = e.get_callee_id(); - for r.iter().advance |callee_id| { + foreach callee_id in r.iter() { resolve_method_map_entry(wbcx.fcx, e.span, *callee_id); } } @@ -238,14 +238,14 @@ fn visit_expr(e: @ast::expr, (wbcx, v): (@mut WbCtxt, wb_vt)) { resolve_vtable_map_entry(wbcx.fcx, e.span, e.id); { let r = e.get_callee_id(); - for r.iter().advance |callee_id| { + foreach callee_id in r.iter() { resolve_vtable_map_entry(wbcx.fcx, e.span, *callee_id); } } match e.node { ast::expr_fn_block(ref decl, _) => { - for decl.inputs.iter().advance |input| { + foreach input in decl.inputs.iter() { let _ = resolve_type_vars_for_node(wbcx, e.span, input.id); } } @@ -341,12 +341,12 @@ pub fn resolve_type_vars_in_fn(fcx: @mut FnCtxt, let wbcx = @mut WbCtxt { fcx: fcx, success: true }; let visit = mk_visitor(); (visit.visit_block)(blk, (wbcx, visit)); - for self_info.iter().advance |self_info| { + foreach self_info in self_info.iter() { resolve_type_vars_for_node(wbcx, self_info.span, self_info.self_id); } - for decl.inputs.iter().advance |arg| { + foreach arg in decl.inputs.iter() { (visit.visit_pat)(arg.pat, (wbcx, visit)); // Privacy needs the type for the whole pattern, not just each binding if !pat_util::pat_is_binding(fcx.tcx().def_map, arg.pat) { diff --git a/src/librustc/middle/typeck/coherence.rs b/src/librustc/middle/typeck/coherence.rs index 5555a890656..950c836e032 100644 --- a/src/librustc/middle/typeck/coherence.rs +++ b/src/librustc/middle/typeck/coherence.rs @@ -243,7 +243,7 @@ impl CoherenceChecker { let implementation = self.create_impl_from_item(item); - for associated_traits.iter().advance |associated_trait| { + foreach associated_trait in associated_traits.iter() { let trait_ref = ty::node_id_to_trait_ref( self.crate_context.tcx, associated_trait.ref_id); debug!("(checking implementation) adding impl for trait '%s', item '%s'", @@ -290,7 +290,7 @@ impl CoherenceChecker { let impl_poly_type = ty::lookup_item_type(tcx, impl_id); let provided = ty::provided_trait_methods(tcx, trait_ref.def_id); - for provided.iter().advance |trait_method| { + foreach trait_method in provided.iter() { // Synthesize an ID. let new_id = parse::next_node_id(tcx.sess.parse_sess); let new_did = local_def(new_id); @@ -409,7 +409,7 @@ impl CoherenceChecker { pub fn iter_impls_of_trait(&self, trait_def_id: def_id, f: &fn(@Impl)) { match self.crate_context.tcx.trait_impls.find(&trait_def_id) { Some(impls) => { - for impls.iter().advance |&im| { + foreach &im in impls.iter() { f(im); } } @@ -556,7 +556,7 @@ impl CoherenceChecker { } let r = ty::trait_methods(tcx, trait_did); - for r.iter().advance |method| { + foreach method in r.iter() { debug!("checking for %s", method.ident.repr(tcx)); if provided_names.contains(&method.ident) { loop; } @@ -612,11 +612,11 @@ impl CoherenceChecker { match item.node { item_impl(_, ref trait_refs, _, ref ast_methods) => { let mut methods = ~[]; - for ast_methods.iter().advance |ast_method| { + foreach ast_method in ast_methods.iter() { methods.push(ty::method(tcx, local_def(ast_method.id))); } - for trait_refs.iter().advance |trait_ref| { + foreach trait_ref in trait_refs.iter() { let ty_trait_ref = ty::node_id_to_trait_ref( self.crate_context.tcx, trait_ref.ref_id); @@ -698,14 +698,14 @@ impl CoherenceChecker { } // Record all the trait methods. - for associated_traits.iter().advance |trait_ref| { + foreach trait_ref in associated_traits.iter() { self.add_trait_impl(trait_ref.def_id, implementation); } // For any methods that use a default implementation, add them to // the map. This is a bit unfortunate. - for implementation.methods.iter().advance |method| { - for method.provided_source.iter().advance |source| { + foreach method in implementation.methods.iter() { + foreach source in method.provided_source.iter() { tcx.provided_method_sources.insert(method.def_id, *source); } } @@ -767,7 +767,7 @@ impl CoherenceChecker { Some(found_impls) => impls = found_impls } - for impls.iter().advance |impl_info| { + foreach impl_info in impls.iter() { if impl_info.methods.len() < 1 { // We'll error out later. For now, just don't ICE. loop; diff --git a/src/librustc/middle/typeck/collect.rs b/src/librustc/middle/typeck/collect.rs index 08378c9930a..63c14dd8288 100644 --- a/src/librustc/middle/typeck/collect.rs +++ b/src/librustc/middle/typeck/collect.rs @@ -143,7 +143,7 @@ pub fn get_enum_variant_types(ccx: &CrateCtxt, let tcx = ccx.tcx; // Create a set of parameter types shared among all the variants. - for variants.iter().advance |variant| { + foreach variant in variants.iter() { let region_parameterization = RegionParameterization::from_variance_and_generics(rp, generics); @@ -208,7 +208,7 @@ pub fn ensure_trait_methods(ccx: &CrateCtxt, // For each method, construct a suitable ty::Method and // store it into the `tcx.methods` table: - for ms.iter().advance |m| { + foreach m in ms.iter() { let ty_method = @match m { &ast::required(ref m) => { ty_method_of_trait_method( @@ -395,7 +395,7 @@ pub fn ensure_supertraits(ccx: &CrateCtxt, let self_ty = ty::mk_self(ccx.tcx, local_def(id)); let mut ty_trait_refs: ~[@ty::TraitRef] = ~[]; - for ast_trait_refs.iter().advance |ast_trait_ref| { + foreach ast_trait_ref in ast_trait_refs.iter() { let trait_ref = instantiate_trait_ref(ccx, ast_trait_ref, rp, generics, self_ty); @@ -494,7 +494,7 @@ pub fn compare_impl_method(tcx: ty::ctxt, return; } - for trait_m.generics.type_param_defs.iter().enumerate().advance |(i, trait_param_def)| { + foreach (i, trait_param_def) in trait_m.generics.type_param_defs.iter().enumerate() { // For each of the corresponding impl ty param's bounds... let impl_param_def = &impl_m.generics.type_param_defs[i]; @@ -558,10 +558,10 @@ pub fn compare_impl_method(tcx: ty::ctxt, // For both the trait and the impl, create an argument to // represent the self argument (unless this is a static method). // This argument will have the *transformed* self type. - for trait_m.transformed_self_ty.iter().advance |&t| { + foreach &t in trait_m.transformed_self_ty.iter() { trait_fn_args.push(t); } - for impl_m.transformed_self_ty.iter().advance |&t| { + foreach &t in impl_m.transformed_self_ty.iter() { impl_fn_args.push(t); } @@ -674,7 +674,7 @@ pub fn check_methods_against_trait(ccx: &CrateCtxt, // Trait methods we don't implement must be default methods, but if not // we'll catch it in coherence let trait_ms = ty::trait_methods(tcx, trait_ref.def_id); - for impl_ms.iter().advance |impl_m| { + foreach impl_m in impl_ms.iter() { match trait_ms.iter().find_(|trait_m| trait_m.ident == impl_m.mty.ident) { Some(trait_m) => { let num_impl_tps = generics.ty_params.len(); @@ -805,7 +805,7 @@ pub fn ensure_no_ty_param_bounds(ccx: &CrateCtxt, span: span, generics: &ast::Generics, thing: &'static str) { - for generics.ty_params.iter().advance |ty_param| { + foreach ty_param in generics.ty_params.iter() { if ty_param.bounds.len() > 0 { ccx.tcx.sess.span_err( span, @@ -858,7 +858,7 @@ pub fn convert(ccx: &CrateCtxt, it: &ast::item) { let cms = convert_methods(ccx, it.id, *ms, selfty, &i_ty_generics, generics, parent_visibility); - for opt_trait_ref.iter().advance |t| { + foreach t in opt_trait_ref.iter() { check_methods_against_trait(ccx, generics, rp, selfty, t, cms); } } @@ -912,7 +912,7 @@ pub fn convert_struct(ccx: &CrateCtxt, let tcx = ccx.tcx; // Write the type of each of the members - for struct_def.fields.iter().advance |f| { + foreach f in struct_def.fields.iter() { convert_field(ccx, rp, tpt.generics.type_param_defs, *f, generics); } let (_, substs) = mk_item_substs(ccx, generics, rp, None); @@ -1203,7 +1203,7 @@ pub fn ty_generics(ccx: &CrateCtxt, builtin_bounds: ty::EmptyBuiltinBounds(), trait_bounds: ~[] }; - for ast_bounds.iter().advance |ast_bound| { + foreach ast_bound in ast_bounds.iter() { match *ast_bound { TraitTyParamBound(ref b) => { let ty = ty::mk_param(ccx.tcx, param_ty.idx, param_ty.def_id); diff --git a/src/librustc/middle/typeck/infer/error_reporting.rs b/src/librustc/middle/typeck/infer/error_reporting.rs index 21f3fdf7b2c..a59db0bfd9e 100644 --- a/src/librustc/middle/typeck/infer/error_reporting.rs +++ b/src/librustc/middle/typeck/infer/error_reporting.rs @@ -114,7 +114,7 @@ pub trait ErrorReporting { impl ErrorReporting for InferCtxt { pub fn report_region_errors(@mut self, errors: &OptVec) { - for errors.iter().advance |error| { + foreach error in errors.iter() { match *error { ConcreteFailure(origin, sub, sup) => { self.report_concrete_failure(origin, sub, sup); diff --git a/src/librustc/middle/typeck/infer/glb.rs b/src/librustc/middle/typeck/infer/glb.rs index 32f3e8fea3a..84a2215fbfe 100644 --- a/src/librustc/middle/typeck/infer/glb.rs +++ b/src/librustc/middle/typeck/infer/glb.rs @@ -219,7 +219,7 @@ impl Combine for Glb { let mut a_r = None; let mut b_r = None; let mut only_new_vars = true; - for tainted.iter().advance |r| { + foreach r in tainted.iter() { if is_var_in_set(a_vars, *r) { if a_r.is_some() { return fresh_bound_variable(this); diff --git a/src/librustc/middle/typeck/infer/mod.rs b/src/librustc/middle/typeck/infer/mod.rs index f619135d82b..e487ca03c86 100644 --- a/src/librustc/middle/typeck/infer/mod.rs +++ b/src/librustc/middle/typeck/infer/mod.rs @@ -730,7 +730,7 @@ impl InferCtxt { fmt!("%s%s", mk_msg(Some(self.ty_to_str(e)), actual_ty), error_str)); } } - for err.iter().advance |err| { + foreach err in err.iter() { ty::note_and_explain_type_err(self.tcx, *err) } } diff --git a/src/librustc/middle/typeck/infer/region_inference/mod.rs b/src/librustc/middle/typeck/infer/region_inference/mod.rs index c4e41ea94a6..500f8e4fe48 100644 --- a/src/librustc/middle/typeck/infer/region_inference/mod.rs +++ b/src/librustc/middle/typeck/infer/region_inference/mod.rs @@ -916,7 +916,7 @@ impl RegionVarBindings { &self, errors: &mut OptVec) { - for self.constraints.iter().advance |(constraint, _)| { + foreach (constraint, _) in self.constraints.iter() { let (sub, sup) = match *constraint { ConstrainVarSubVar(*) | ConstrainRegSubVar(*) | @@ -1032,7 +1032,7 @@ impl RegionVarBindings { } let dummy_idx = graph.add_node(()); - for self.constraints.iter().advance |(constraint, _)| { + foreach (constraint, _) in self.constraints.iter() { match *constraint { ConstrainVarSubVar(a_id, b_id) => { graph.add_edge(NodeIndex(a_id.to_uint()), @@ -1080,8 +1080,8 @@ impl RegionVarBindings { return; } - for lower_bounds.iter().advance |lower_bound| { - for upper_bounds.iter().advance |upper_bound| { + foreach lower_bound in lower_bounds.iter() { + foreach upper_bound in upper_bounds.iter() { if !self.is_subregion_of(lower_bound.region, upper_bound.region) { errors.push(SubSupConflict( @@ -1122,8 +1122,8 @@ impl RegionVarBindings { return; } - for upper_bounds.iter().advance |upper_bound_1| { - for upper_bounds.iter().advance |upper_bound_2| { + foreach upper_bound_1 in upper_bounds.iter() { + foreach upper_bound_2 in upper_bounds.iter() { match self.glb_concrete_regions(upper_bound_1.region, upper_bound_2.region) { Ok(_) => {} @@ -1242,7 +1242,7 @@ impl RegionVarBindings { changed = false; iteration += 1; debug!("---- %s Iteration #%u", tag, iteration); - for self.constraints.iter().advance |(constraint, _)| { + foreach (constraint, _) in self.constraints.iter() { let edge_changed = body(constraint); if edge_changed { debug!("Updated due to constraint %s", diff --git a/src/librustc/middle/typeck/infer/sub.rs b/src/librustc/middle/typeck/infer/sub.rs index 9aaee7c7ce0..cb8f7ddb222 100644 --- a/src/librustc/middle/typeck/infer/sub.rs +++ b/src/librustc/middle/typeck/infer/sub.rs @@ -194,7 +194,7 @@ impl Combine for Sub { for list::each(skol_isr) |pair| { let (skol_br, skol) = *pair; let tainted = self.infcx.region_vars.tainted(snapshot, skol); - for tainted.iter().advance |tainted_region| { + foreach tainted_region in tainted.iter() { // Each skolemized should only be relatable to itself // or new variables: match *tainted_region { diff --git a/src/librustc/middle/typeck/infer/test.rs b/src/librustc/middle/typeck/infer/test.rs index e26402d686d..b8477149430 100644 --- a/src/librustc/middle/typeck/infer/test.rs +++ b/src/librustc/middle/typeck/infer/test.rs @@ -79,7 +79,7 @@ fn setup_env(test_name: &str, source_string: &str) -> Env { impl Env { pub fn create_region_hierarchy(&self, rh: &RH) { - for rh.sub.iter().advance |child_rh| { + foreach child_rh in rh.sub.iter() { self.create_region_hierarchy(child_rh); self.tcx.region_map.insert(child_rh.id, rh.id); } @@ -109,7 +109,7 @@ impl Env { idx: uint, names: &[~str]) -> Option { assert!(idx < names.len()); - for m.items.iter().advance |item| { + foreach item in m.items.iter() { if self.tcx.sess.str_of(item.ident) == names[idx] { return search(self, *item, idx+1, names); } @@ -227,7 +227,7 @@ impl Env { self.infcx.resolve_regions(); if self.err_messages.len() != exp_count { - for self.err_messages.iter().advance |msg| { + foreach msg in self.err_messages.iter() { debug!("Error encountered: %s", *msg); } fmt!("Resolving regions encountered %u errors but expected %u!", diff --git a/src/librustc/middle/typeck/rscope.rs b/src/librustc/middle/typeck/rscope.rs index 94d30fd9a87..16740d3ce4e 100644 --- a/src/librustc/middle/typeck/rscope.rs +++ b/src/librustc/middle/typeck/rscope.rs @@ -58,7 +58,7 @@ impl RegionParamNames { } fn has_ident(&self, ident: ast::ident) -> bool { - for self.iter().advance |region_param_name| { + foreach region_param_name in self.iter() { if *region_param_name == ident { return true; } @@ -76,7 +76,7 @@ impl RegionParamNames { opt_vec::Vec(new_lifetimes.map(|lt| lt.ident))); } opt_vec::Vec(ref mut existing_lifetimes) => { - for new_lifetimes.iter().advance |new_lifetime| { + foreach new_lifetime in new_lifetimes.iter() { existing_lifetimes.push(new_lifetime.ident); } } diff --git a/src/librustc/rustc.rs b/src/librustc/rustc.rs index 6604a8bc74b..a9531f33b5e 100644 --- a/src/librustc/rustc.rs +++ b/src/librustc/rustc.rs @@ -152,7 +152,7 @@ Available lint options: lint_dict.qsort(); let mut max_key = 0; - for lint_dict.iter().advance |&(_, name)| { + foreach &(_, name) in lint_dict.iter() { max_key = num::max(name.len(), max_key); } fn padded(max: uint, s: &str) -> ~str { @@ -163,7 +163,7 @@ Available lint options: padded(max_key, "name"), "default", "meaning"); printfln!(" %s %7.7s %s\n", padded(max_key, "----"), "-------", "-------"); - for lint_dict.consume_iter().advance |(spec, name)| { + foreach (spec, name) in lint_dict.consume_iter() { let name = name.replace("_", "-"); printfln!(" %s %7.7s %s", padded(max_key, name), @@ -176,7 +176,7 @@ Available lint options: pub fn describe_debug_flags() { printfln!("\nAvailable debug options:\n"); let r = session::debugging_opts_map(); - for r.iter().advance |tuple| { + foreach tuple in r.iter() { match *tuple { (ref name, ref desc, _) => { printfln!(" -Z %-20s -- %s", *name, *desc); @@ -350,7 +350,7 @@ pub fn monitor(f: ~fn(diagnostic::Emitter)) { to get further details and report the results \ to github.com/mozilla/rust/issues" ]; - for xs.iter().advance |note| { + foreach note in xs.iter() { diagnostic::emit(None, *note, diagnostic::note) } } diff --git a/src/librustc/util/ppaux.rs b/src/librustc/util/ppaux.rs index 68e05ad7d04..595748390eb 100644 --- a/src/librustc/util/ppaux.rs +++ b/src/librustc/util/ppaux.rs @@ -398,7 +398,7 @@ pub fn ty_to_str(cx: ctxt, typ: t) -> ~str { } // if there is an id, print that instead of the structural type: - /*for ty::type_def_id(typ).iter().advance |def_id| { + /*foreach def_id in ty::type_def_id(typ).iter() { // note that this typedef cannot have type parameters return ast_map::path_to_str(ty::item_path(cx, *def_id), cx.sess.intr()); @@ -484,13 +484,13 @@ pub fn parameterized(cx: ctxt, match *regions { ty::ErasedRegions => { } ty::NonerasedRegions(ref regions) => { - for regions.iter().advance |&r| { + foreach &r in regions.iter() { strs.push(region_to_str(cx, "", false, r)) } } } - for tps.iter().advance |t| { + foreach t in tps.iter() { strs.push(ty_to_str(cx, *t)) } @@ -597,7 +597,7 @@ impl Repr for ty::ParamBounds { ty::BoundSized => ~"Sized", }); } - for self.trait_bounds.iter().advance |t| { + foreach t in self.trait_bounds.iter() { res.push(t.repr(tcx)); } res.connect("+") @@ -846,7 +846,7 @@ impl UserString for ty::TraitRef { let base = ast_map::path_to_str(path, tcx.sess.intr()); if tcx.sess.verbose() && self.substs.self_ty.is_some() { let mut all_tps = self.substs.tps.clone(); - for self.substs.self_ty.iter().advance |&t| { all_tps.push(t); } + foreach &t in self.substs.self_ty.iter() { all_tps.push(t); } parameterized(tcx, base, &self.substs.regions, all_tps) } else { parameterized(tcx, base, &self.substs.regions, self.substs.tps) diff --git a/src/librustdoc/config.rs b/src/librustdoc/config.rs index aa3557e8a9d..3cc243d6917 100644 --- a/src/librustdoc/config.rs +++ b/src/librustdoc/config.rs @@ -73,7 +73,7 @@ pub fn usage() { println("Usage: rustdoc [options] \n"); println("Options:\n"); let r = opts(); - for r.iter().advance |opt| { + foreach opt in r.iter() { printfln!(" %s", opt.second()); } println(""); diff --git a/src/librustdoc/extract.rs b/src/librustdoc/extract.rs index 8ac987108b3..3e608fc6ef8 100644 --- a/src/librustdoc/extract.rs +++ b/src/librustdoc/extract.rs @@ -142,7 +142,7 @@ fn nmoddoc_from_mod( module_: ast::foreign_mod ) -> doc::NmodDoc { let mut fns = ~[]; - for module_.items.iter().advance |item| { + foreach item in module_.items.iter() { let ItemDoc = mk_itemdoc(item.id, to_str(item.ident)); match item.node { ast::foreign_item_fn(*) => { diff --git a/src/librustdoc/markdown_pass.rs b/src/librustdoc/markdown_pass.rs index 7ee31d5a8e7..0706cd98e58 100644 --- a/src/librustdoc/markdown_pass.rs +++ b/src/librustdoc/markdown_pass.rs @@ -189,7 +189,7 @@ pub fn header_name(doc: doc::ItemTag) -> ~str { }; let self_ty = doc.self_ty.get_ref(); let mut trait_part = ~""; - for doc.trait_types.iter().enumerate().advance |(i, trait_type)| { + foreach (i, trait_type) in doc.trait_types.iter().enumerate() { if i == 0 { trait_part.push_str(" of "); } else { @@ -279,7 +279,7 @@ fn write_desc( } fn write_sections(ctxt: &Ctxt, sections: &[doc::Section]) { - for sections.iter().advance |section| { + foreach section in sections.iter() { write_section(ctxt, (*section).clone()); } } @@ -299,7 +299,7 @@ fn write_mod_contents( write_index(ctxt, doc.index.get_ref()); } - for doc.items.iter().advance |itemTag| { + foreach itemTag in doc.items.iter() { write_item(ctxt, (*itemTag).clone()); } } @@ -349,7 +349,7 @@ fn write_index(ctxt: &Ctxt, index: &doc::Index) { ctxt.w.put_line(~"
"); ctxt.w.put_line(~""); - for index.entries.iter().advance |entry| { + foreach entry in index.entries.iter() { let header = header_text_(entry.kind, entry.name); let id = entry.link.clone(); if entry.brief.is_some() { @@ -370,7 +370,7 @@ fn write_nmod(ctxt: &Ctxt, doc: doc::NmodDoc) { write_index(ctxt, doc.index.get_ref()); } - for doc.fns.iter().advance |FnDoc| { + foreach FnDoc in doc.fns.iter() { write_item_header(ctxt, doc::FnTag((*FnDoc).clone())); write_fn(ctxt, (*FnDoc).clone()); } @@ -435,7 +435,7 @@ fn write_variants( write_header_(ctxt, H4, ~"Variants"); - for docs.iter().advance |variant| { + foreach variant in docs.iter() { write_variant(ctxt, (*variant).clone()); } @@ -474,7 +474,7 @@ fn write_trait(ctxt: &Ctxt, doc: doc::TraitDoc) { } fn write_methods(ctxt: &Ctxt, docs: &[doc::MethodDoc]) { - for docs.iter().advance |doc| { + foreach doc in docs.iter() { write_method(ctxt, (*doc).clone()); } } diff --git a/src/librustdoc/sectionalize_pass.rs b/src/librustdoc/sectionalize_pass.rs index 9f39f854539..da73027a4ab 100644 --- a/src/librustdoc/sectionalize_pass.rs +++ b/src/librustdoc/sectionalize_pass.rs @@ -18,8 +18,6 @@ use fold::Fold; use fold; use pass::Pass; -use std::iterator::IteratorUtil; - pub fn mk_pass() -> Pass { Pass { name: ~"sectionalize", @@ -108,7 +106,7 @@ fn sectionalize(desc: Option<~str>) -> (Option<~str>, ~[doc::Section]) { let mut current_section: Option = None; let mut sections = ~[]; - for desc.get_ref().any_line_iter().advance |line| { + foreach line in desc.get_ref().any_line_iter() { match parse_header(line) { Some(header) => { if current_section.is_some() { diff --git a/src/librusti/program.rs b/src/librusti/program.rs index 893e58290fa..40390d67a0d 100644 --- a/src/librusti/program.rs +++ b/src/librusti/program.rs @@ -98,7 +98,7 @@ impl Program { code.push_str("fn main() {\n"); // It's easy to initialize things if we don't run things... - for self.local_vars.iter().advance |(name, var)| { + foreach (name, var) in self.local_vars.iter() { let mt = var.mt(); code.push_str(fmt!("let%s %s: %s = fail!();\n", mt, *name, var.ty)); var.alter(*name, &mut code); @@ -114,7 +114,7 @@ impl Program { None => {} } - for new_locals.iter().advance |p| { + foreach p in new_locals.iter() { code.push_str(fmt!("assert_encodable(&%s);\n", *p.first_ref())); } code.push_str("};}"); @@ -146,7 +146,7 @@ impl Program { // Using this __tls_map handle, deserialize each variable binding that // we know about - for self.local_vars.iter().advance |(name, var)| { + foreach (name, var) in self.local_vars.iter() { let mt = var.mt(); code.push_str(fmt!("let%s %s: %s = { let data = __tls_map.get_copy(&~\"%s\"); @@ -167,13 +167,13 @@ impl Program { } let newvars = util::replace(&mut self.newvars, HashMap::new()); - for newvars.consume().advance |(name, var)| { + foreach (name, var) in newvars.consume() { self.local_vars.insert(name, var); } // After the input code is run, we can re-serialize everything back out // into tls map (to be read later on by this task) - for self.local_vars.iter().advance |(name, var)| { + foreach (name, var) in self.local_vars.iter() { code.push_str(fmt!("{ let local: %s = %s; let bytes = do ::std::io::with_bytes_writer |io| { @@ -221,7 +221,7 @@ impl Program { /// program starts pub fn set_cache(&self) { let map = @mut HashMap::new(); - for self.local_vars.iter().advance |(name, value)| { + foreach (name, value) in self.local_vars.iter() { map.insert((*name).clone(), @(value.data).clone()); } local_data::set(tls_key, map); @@ -233,7 +233,7 @@ impl Program { pub fn consume_cache(&mut self) { let map = local_data::pop(tls_key).expect("tls is empty"); let cons_map = util::replace(map, HashMap::new()); - for cons_map.consume().advance |(name, value)| { + foreach (name, value) in cons_map.consume() { match self.local_vars.find_mut(&name) { Some(v) => { v.data = (*value).clone(); } None => { fail!("unknown variable %s", name) } @@ -345,14 +345,14 @@ impl Program { // I'm not an @ pointer, so this has to be done outside. let cons_newvars = util::replace(newvars, HashMap::new()); - for cons_newvars.consume().advance |(k, v)| { + foreach (k, v) in cons_newvars.consume() { self.newvars.insert(k, v); } // helper functions to perform ast iteration fn each_user_local(blk: &ast::Block, f: &fn(@ast::Local)) { do find_user_block(blk) |blk| { - for blk.stmts.iter().advance |stmt| { + foreach stmt in blk.stmts.iter() { match stmt.node { ast::stmt_decl(d, _) => { match d.node { @@ -367,7 +367,7 @@ impl Program { } fn find_user_block(blk: &ast::Block, f: &fn(&ast::Block)) { - for blk.stmts.iter().advance |stmt| { + foreach stmt in blk.stmts.iter() { match stmt.node { ast::stmt_semi(e, _) => { match e.node { diff --git a/src/librusti/rusti.rs b/src/librusti/rusti.rs index a79f20633ad..58732a7a96a 100644 --- a/src/librusti/rusti.rs +++ b/src/librusti/rusti.rs @@ -149,7 +149,7 @@ fn run(mut program: ~Program, binary: ~str, lib_search_paths: ~[~str], do find_main(crate, sess) |blk| { // Fish out all the view items, be sure to record 'extern mod' items // differently beause they must appear before all 'use' statements - for blk.view_items.iter().advance |vi| { + foreach vi in blk.view_items.iter() { let s = do with_pp(intr) |pp, _| { pprust::print_view_item(pp, vi); }; @@ -163,7 +163,7 @@ fn run(mut program: ~Program, binary: ~str, lib_search_paths: ~[~str], // Iterate through all of the block's statements, inserting them into // the correct portions of the program - for blk.stmts.iter().advance |stmt| { + foreach stmt in blk.stmts.iter() { let s = do with_pp(intr) |pp, _| { pprust::print_stmt(pp, *stmt); }; match stmt.node { ast::stmt_decl(d, _) => { @@ -276,7 +276,7 @@ fn run(mut program: ~Program, binary: ~str, lib_search_paths: ~[~str], fn find_main(crate: @ast::Crate, sess: session::Session, f: &fn(&ast::Block)) { - for crate.module.items.iter().advance |item| { + foreach item in crate.module.items.iter() { match item.node { ast::item_fn(_, _, _, _, ref blk) => { if item.ident == sess.ident_of("main") { @@ -396,7 +396,7 @@ fn run_cmd(repl: &mut Repl, _in: @io::Reader, _out: @io::Writer, } ~"load" => { let mut loaded_crates: ~[~str] = ~[]; - for args.iter().advance |arg| { + foreach arg in args.iter() { let (crate, filename) = if arg.ends_with(".rs") || arg.ends_with(".rc") { (arg.slice_to(arg.len() - 3).to_owned(), (*arg).clone()) @@ -408,7 +408,7 @@ fn run_cmd(repl: &mut Repl, _in: @io::Reader, _out: @io::Writer, None => { } } } - for loaded_crates.iter().advance |crate| { + foreach crate in loaded_crates.iter() { let crate_path = Path(*crate); let crate_dir = crate_path.dirname(); repl.program.record_extern(fmt!("extern mod %s;", *crate)); @@ -571,7 +571,7 @@ mod tests { #[cfg(thiswillneverbeacfgflag)] fn run_program(prog: &str) { let mut r = repl(); - for prog.split_iter('\n').advance |cmd| { + foreach cmd in prog.split_iter('\n') { assert!(run_line(&mut r, io::stdin(), io::stdout(), cmd.to_owned(), false), "the command '%s' failed", cmd); diff --git a/src/librustpkg/installed_packages.rs b/src/librustpkg/installed_packages.rs index 5f1e0594c47..942e622b140 100644 --- a/src/librustpkg/installed_packages.rs +++ b/src/librustpkg/installed_packages.rs @@ -15,16 +15,16 @@ use std::os; pub fn list_installed_packages(f: &fn(&PkgId) -> bool) -> bool { let workspaces = rust_path(); - for workspaces.iter().advance |p| { + foreach p in workspaces.iter() { let binfiles = os::list_dir(&p.push("bin")); - for binfiles.iter().advance() |exec| { + foreach exec in binfiles.iter() { let exec_path = Path(*exec).filestem(); do exec_path.iter().advance |s| { f(&PkgId::new(*s, p)) }; } let libfiles = os::list_dir(&p.push("lib")); - for libfiles.iter().advance() |lib| { + foreach lib in libfiles.iter() { debug!("Full name: %s", *lib); let lib_path = Path(*lib).filestem(); do lib_path.iter().advance |s| { diff --git a/src/librustpkg/package_source.rs b/src/librustpkg/package_source.rs index 3b3f08baa7e..07e8de35fd6 100644 --- a/src/librustpkg/package_source.rs +++ b/src/librustpkg/package_source.rs @@ -135,7 +135,7 @@ impl PkgSrc { return true; } else { - for self_id.iter().advance |pth| { + foreach pth in self_id.iter() { if pth.starts_with("rust_") // because p is already normalized && match p.filestem() { Some(s) => str::eq_slice(s, pth.slice(5, pth.len())), @@ -149,7 +149,7 @@ impl PkgSrc { fn push_crate(cs: &mut ~[Crate], prefix: uint, p: &Path) { assert!(p.components.len() > prefix); let mut sub = Path(""); - for p.components.slice(prefix, p.components.len()).iter().advance |c| { + foreach c in p.components.slice(prefix, p.components.len()).iter() { sub = sub.push(*c); } debug!("found crate %s", sub.to_str()); @@ -206,7 +206,7 @@ impl PkgSrc { crates: &[Crate], cfgs: &[~str], what: OutputType) { - for crates.iter().advance |crate| { + foreach crate in crates.iter() { let path = &src_dir.push_rel(&crate.file).normalize(); note(fmt!("build_crates: compiling %s", path.to_str())); note(fmt!("build_crates: destination dir is %s", dst_dir.to_str())); diff --git a/src/librustpkg/path_util.rs b/src/librustpkg/path_util.rs index 696e4b30d1b..ef95adf8c17 100644 --- a/src/librustpkg/path_util.rs +++ b/src/librustpkg/path_util.rs @@ -61,7 +61,7 @@ pub fn rust_path() -> ~[Path] { // Avoid adding duplicates // could still add dups if someone puts one of these in the RUST_PATH // manually, though... - for h.iter().advance |hdir| { + foreach hdir in h.iter() { if !(cwd.is_ancestor_of(hdir) || hdir.is_ancestor_of(&cwd)) { push_if_exists(&mut env_rust_path, hdir); } @@ -100,7 +100,7 @@ pub fn make_dir_rwx(p: &Path) -> bool { os::make_dir(p, U_RWX) } pub fn workspace_contains_package_id(pkgid: &PkgId, workspace: &Path) -> bool { let src_dir = workspace.push("src"); let dirs = os::list_dir(&src_dir); - for dirs.iter().advance |p| { + foreach p in dirs.iter() { let p = Path((*p).clone()); debug!("=> p = %s", p.to_str()); if !os::path_is_dir(&src_dir.push_rel(&p)) { @@ -113,7 +113,7 @@ pub fn workspace_contains_package_id(pkgid: &PkgId, workspace: &Path) -> bool { } else { let pf = p.filename(); - for pf.iter().advance |pf| { + foreach pf in pf.iter() { let f_ = (*pf).clone(); let g = f_.to_str(); match split_version_general(g, '-') { @@ -150,7 +150,7 @@ pub fn pkgid_src_in_workspace(pkgid: &PkgId, workspace: &Path) -> ~[Path] { /// Returns a src for pkgid that does exist -- None if none of them do pub fn first_pkgid_src_in_workspace(pkgid: &PkgId, workspace: &Path) -> Option { let rs = pkgid_src_in_workspace(pkgid, workspace); - for rs.iter().advance |p| { + foreach p in rs.iter() { if os::path_exists(p) { return Some((*p).clone()); } @@ -246,7 +246,7 @@ pub fn library_in_workspace(path: &LocalPath, short_name: &str, where: Target, debug!("lib_prefix = %s and lib_filetype = %s", lib_prefix, lib_filetype); let mut result_filename = None; - for dir_contents.iter().advance |p| { + foreach p in dir_contents.iter() { let mut which = 0; let mut hash = None; let p_path = Path((*p).clone()); @@ -261,7 +261,7 @@ pub fn library_in_workspace(path: &LocalPath, short_name: &str, where: Target, let f_name = match p_path.filename() { Some(s) => s, None => loop }; - for f_name.split_iter('-').advance |piece| { + foreach piece in f_name.split_iter('-') { debug!("a piece = %s", piece); if which == 0 && piece != lib_prefix { break; diff --git a/src/librustpkg/rustpkg.rs b/src/librustpkg/rustpkg.rs index b2aa53f3ab1..29c0380948f 100644 --- a/src/librustpkg/rustpkg.rs +++ b/src/librustpkg/rustpkg.rs @@ -430,14 +430,14 @@ impl CtxMethods for Ctx { target_exec.to_str(), target_lib, maybe_executable, maybe_library); - for maybe_executable.iter().advance |exec| { + foreach exec in maybe_executable.iter() { debug!("Copying: %s -> %s", exec.to_str(), target_exec.to_str()); if !(os::mkdir_recursive(&target_exec.dir_path(), U_RWX) && os::copy_file(exec, &target_exec)) { cond.raise(((*exec).clone(), target_exec.clone())); } } - for maybe_library.iter().advance |lib| { + foreach lib in maybe_library.iter() { let target_lib = target_lib.clone().expect(fmt!("I built %s but apparently \ didn't install it!", lib.to_str())); debug!("Copying: %s -> %s", lib.to_str(), target_lib.to_str()); diff --git a/src/librustpkg/tests.rs b/src/librustpkg/tests.rs index c5705f069a2..6b174836a68 100644 --- a/src/librustpkg/tests.rs +++ b/src/librustpkg/tests.rs @@ -356,7 +356,7 @@ fn command_line_test_output(args: &[~str]) -> ~[~str] { let mut result = ~[]; let p_output = command_line_test(args, &os::getcwd()); let test_output = str::from_bytes(p_output.output); - for test_output.split_iter('\n').advance |s| { + foreach s in test_output.split_iter('\n') { result.push(s.to_owned()); } result @@ -366,7 +366,7 @@ fn command_line_test_output_with_env(args: &[~str], env: ~[(~str, ~str)]) -> ~[~ let mut result = ~[]; let p_output = command_line_test_with_env(args, &os::getcwd(), Some(env)); let test_output = str::from_bytes(p_output.output); - for test_output.split_iter('\n').advance |s| { + foreach s in test_output.split_iter('\n') { result.push(s.to_owned()); } result @@ -391,7 +391,7 @@ fn touch_source_file(workspace: &Path, pkgid: &PkgId) { use conditions::bad_path::cond; let pkg_src_dir = workspace.push("src").push(pkgid.to_str()); let contents = os::list_dir_path(&pkg_src_dir); - for contents.iter().advance |p| { + foreach p in contents.iter() { if p.filetype() == Some(~".rs") { // should be able to do this w/o a process if run::process_output("touch", [p.to_str()]).status != 0 { @@ -408,7 +408,7 @@ fn frob_source_file(workspace: &Path, pkgid: &PkgId) { let pkg_src_dir = workspace.push("src").push(pkgid.to_str()); let contents = os::list_dir_path(&pkg_src_dir); let mut maybe_p = None; - for contents.iter().advance |p| { + foreach p in contents.iter() { if p.filetype() == Some(~".rs") { maybe_p = Some(p); break; @@ -811,7 +811,7 @@ fn rust_path_contents() { assert!(p.contains(&cwd)); assert!(p.contains(&parent)); assert!(p.contains(&grandparent)); - for p.iter().advance() |a_path| { + foreach a_path in p.iter() { assert!(!a_path.components.is_empty()); } }); diff --git a/src/librustpkg/util.rs b/src/librustpkg/util.rs index 12d3f4fcfce..570a9091d18 100644 --- a/src/librustpkg/util.rs +++ b/src/librustpkg/util.rs @@ -104,12 +104,12 @@ fn fold_item(ctx: @mut ReadyCtx, let mut cmds = ~[]; let mut had_pkg_do = false; - for item.attrs.iter().advance |attr| { + foreach attr in item.attrs.iter() { if "pkg_do" == attr.name() { had_pkg_do = true; match attr.node.value.node { ast::MetaList(_, ref mis) => { - for mis.iter().advance |mi| { + foreach mi in mis.iter() { match mi.node { ast::MetaWord(cmd) => cmds.push(cmd.to_owned()), _ => {} @@ -210,7 +210,7 @@ pub fn compile_input(ctxt: &Ctx, let addl_lib_search_paths = @mut options.addl_lib_search_paths; // Make sure all the library directories actually exist, since the linker will complain // otherwise - for addl_lib_search_paths.iter().advance |p| { + foreach p in addl_lib_search_paths.iter() { assert!(os::path_is_dir(p)); } @@ -274,7 +274,7 @@ pub fn compile_crate_from_input(input: &driver::input, debug!("Outputs are %? and output type = %?", outputs, sess.opts.output_type); debug!("additional libraries:"); - for sess.opts.addl_lib_search_paths.iter().advance |lib| { + foreach lib in sess.opts.addl_lib_search_paths.iter() { debug!("an additional library: %s", lib.to_str()); } let analysis = driver::phase_3_run_analysis_passes(sess, crate); @@ -303,7 +303,7 @@ pub fn compile_crate(ctxt: &Ctx, pkg_id: &PkgId, what: OutputType) -> bool { debug!("compile_crate: crate=%s, dir=%s", crate.to_str(), dir.to_str()); debug!("compile_crate: short_name = %s, flags =...", pkg_id.to_str()); - for flags.iter().advance |fl| { + foreach fl in flags.iter() { debug!("+++ %s", *fl); } compile_input(ctxt, pkg_id, crate, dir, flags, cfgs, opt, what) diff --git a/src/librustpkg/version.rs b/src/librustpkg/version.rs index 4fa72b713ac..d0c5c099ec4 100644 --- a/src/librustpkg/version.rs +++ b/src/librustpkg/version.rs @@ -108,7 +108,7 @@ pub fn try_getting_local_version(local_path: &Path) -> Option { let mut output = None; let output_text = str::from_bytes(outp.output); - for output_text.line_iter().advance |l| { + foreach l in output_text.line_iter() { if !l.is_whitespace() { output = Some(l); } @@ -142,7 +142,7 @@ pub fn try_getting_version(remote_path: &RemotePath) -> Option { ~"tag", ~"-l"]); let output_text = str::from_bytes(outp.output); debug!("Full output: ( %s ) [%?]", output_text, outp.status); - for output_text.line_iter().advance |l| { + foreach l in output_text.line_iter() { debug!("A line of output: %s", l); if !l.is_whitespace() { output = Some(l); @@ -172,7 +172,7 @@ fn try_parsing_version(s: &str) -> Option { let s = s.trim(); debug!("Attempting to parse: %s", s); let mut parse_state = Start; - for s.iter().advance |c| { + foreach c in s.iter() { if char::is_digit(c) { parse_state = SawDigit; } @@ -204,7 +204,7 @@ pub fn split_version<'a>(s: &'a str) -> Option<(&'a str, Version)> { pub fn split_version_general<'a>(s: &'a str, sep: char) -> Option<(&'a str, Version)> { // reject strings with multiple '#'s - for s.split_iter(sep).advance |st| { + foreach st in s.split_iter(sep) { debug!("whole = %s part = %s", s, st); } if s.split_iter(sep).len_() > 2 { diff --git a/src/librustpkg/workspace.rs b/src/librustpkg/workspace.rs index 952352a02a5..3417d051e62 100644 --- a/src/librustpkg/workspace.rs +++ b/src/librustpkg/workspace.rs @@ -26,7 +26,7 @@ pub fn each_pkg_parent_workspace(pkgid: &PkgId, action: &fn(&Path) -> bool) -> b pkgid.remote_path.to_str(), rust_path().to_str()); } - for workspaces.iter().advance |ws| { + foreach ws in workspaces.iter() { if action(ws) { break; } diff --git a/src/libstd/at_vec.rs b/src/libstd/at_vec.rs index 8e5b6b93111..22cbcb0d6d4 100644 --- a/src/libstd/at_vec.rs +++ b/src/libstd/at_vec.rs @@ -12,8 +12,8 @@ use clone::Clone; use container::Container; -use iterator::IteratorUtil; -use option::Option; +use iterator::Iterator; +use option::{Option, Some, None}; use sys; use uint; use unstable::raw::Repr; @@ -92,7 +92,7 @@ pub fn build_sized_opt(size: Option, #[inline] pub fn append(lhs: @[T], rhs: &[T]) -> @[T] { do build_sized(lhs.len() + rhs.len()) |push| { - for lhs.iter().advance |x| { + foreach x in lhs.iter() { push((*x).clone()); } for uint::range(0, rhs.len()) |i| { @@ -105,7 +105,7 @@ pub fn append(lhs: @[T], rhs: &[T]) -> @[T] { /// Apply a function to each element of a vector and return the results pub fn map(v: &[T], f: &fn(x: &T) -> U) -> @[U] { do build_sized(v.len()) |push| { - for v.iter().advance |elem| { + foreach elem in v.iter() { push(f(elem)); } } @@ -148,7 +148,7 @@ pub fn to_managed_consume(v: ~[T]) -> @[T] { let mut av = @[]; unsafe { raw::reserve(&mut av, v.len()); - for v.consume_iter().advance |x| { + foreach x in v.consume_iter() { raw::push(&mut av, x); } av diff --git a/src/libstd/either.rs b/src/libstd/either.rs index 4fb43e5157b..d0378fa947b 100644 --- a/src/libstd/either.rs +++ b/src/libstd/either.rs @@ -12,10 +12,11 @@ #[allow(missing_doc)]; +use option::{Some, None}; use clone::Clone; use container::Container; use cmp::Eq; -use iterator::IteratorUtil; +use iterator::Iterator; use result::Result; use result; use str::StrSlice; @@ -46,7 +47,7 @@ pub fn either(f_left: &fn(&T) -> V, /// Extracts from a vector of either all the left values pub fn lefts(eithers: &[Either]) -> ~[T] { do vec::build_sized(eithers.len()) |push| { - for eithers.iter().advance |elt| { + foreach elt in eithers.iter() { match *elt { Left(ref l) => { push((*l).clone()); } _ => { /* fallthrough */ } @@ -58,7 +59,7 @@ pub fn lefts(eithers: &[Either]) -> ~[T] { /// Extracts from a vector of either all the right values pub fn rights(eithers: &[Either]) -> ~[U] { do vec::build_sized(eithers.len()) |push| { - for eithers.iter().advance |elt| { + foreach elt in eithers.iter() { match *elt { Right(ref r) => { push((*r).clone()); } _ => { /* fallthrough */ } @@ -74,7 +75,7 @@ pub fn rights(eithers: &[Either]) -> ~[U] { pub fn partition(eithers: ~[Either]) -> (~[T], ~[U]) { let mut lefts: ~[T] = ~[]; let mut rights: ~[U] = ~[]; - for eithers.consume_iter().advance |elt| { + foreach elt in eithers.consume_iter() { match elt { Left(l) => lefts.push(l), Right(r) => rights.push(r) diff --git a/src/libstd/hash.rs b/src/libstd/hash.rs index 6c3fcd41ed3..16d138d4e1f 100644 --- a/src/libstd/hash.rs +++ b/src/libstd/hash.rs @@ -22,7 +22,8 @@ #[allow(missing_doc)]; use container::Container; -use iterator::IteratorUtil; +use iterator::Iterator; +use option::{Some, None}; use rt::io::Writer; use str::OwnedStr; use to_bytes::IterBytes; @@ -369,7 +370,7 @@ impl Streaming for SipState { fn result_str(&mut self) -> ~str { let r = self.result_bytes(); let mut s = ~""; - for r.iter().advance |b| { + foreach b in r.iter() { s.push_str(uint::to_str_radix(*b as uint, 16u)); } s @@ -471,7 +472,7 @@ mod tests { fn to_hex_str(r: &[u8, ..8]) -> ~str { let mut s = ~""; - for r.iter().advance |b| { + foreach b in r.iter() { s.push_str(uint::to_str_radix(*b as uint, 16u)); } s diff --git a/src/libstd/hashmap.rs b/src/libstd/hashmap.rs index e43293f3212..b162869201d 100644 --- a/src/libstd/hashmap.rs +++ b/src/libstd/hashmap.rs @@ -177,7 +177,7 @@ impl HashMap { self.size = 0; // consume_rev_iter is more efficient - for old_buckets.consume_rev_iter().advance |bucket| { + foreach bucket in old_buckets.consume_rev_iter() { self.insert_opt_bucket(bucket); } } @@ -518,7 +518,7 @@ impl Eq for HashMap { impl Clone for HashMap { fn clone(&self) -> HashMap { let mut new_map = HashMap::with_capacity(self.len()); - for self.iter().advance |(key, value)| { + foreach (key, value) in self.iter() { new_map.insert((*key).clone(), (*value).clone()); } new_map @@ -555,7 +555,7 @@ pub struct HashSetConsumeIterator { impl<'self, K, V> Iterator<(&'self K, &'self V)> for HashMapIterator<'self, K, V> { #[inline] fn next(&mut self) -> Option<(&'self K, &'self V)> { - for self.iter.advance |elt| { + foreach elt in self.iter { match elt { &Some(ref bucket) => return Some((&bucket.key, &bucket.value)), &None => {}, @@ -568,7 +568,7 @@ impl<'self, K, V> Iterator<(&'self K, &'self V)> for HashMapIterator<'self, K, V impl<'self, K, V> Iterator<(&'self K, &'self mut V)> for HashMapMutIterator<'self, K, V> { #[inline] fn next(&mut self) -> Option<(&'self K, &'self mut V)> { - for self.iter.advance |elt| { + foreach elt in self.iter { match elt { &Some(ref mut bucket) => return Some((&bucket.key, &mut bucket.value)), &None => {}, @@ -581,7 +581,7 @@ impl<'self, K, V> Iterator<(&'self K, &'self mut V)> for HashMapMutIterator<'sel impl Iterator<(K, V)> for HashMapConsumeIterator { #[inline] fn next(&mut self) -> Option<(K, V)> { - for self.iter.advance |elt| { + foreach elt in self.iter { match elt { Some(Bucket {key, value, _}) => return Some((key, value)), None => {}, @@ -594,7 +594,7 @@ impl Iterator<(K, V)> for HashMapConsumeIterator { impl<'self, K> Iterator<&'self K> for HashSetIterator<'self, K> { #[inline] fn next(&mut self) -> Option<&'self K> { - for self.iter.advance |elt| { + foreach elt in self.iter { match elt { &Some(ref bucket) => return Some(&bucket.key), &None => {}, @@ -607,7 +607,7 @@ impl<'self, K> Iterator<&'self K> for HashSetIterator<'self, K> { impl Iterator for HashSetConsumeIterator { #[inline] fn next(&mut self) -> Option { - for self.iter.advance |elt| { + foreach elt in self.iter { match elt { Some(bucket) => return Some(bucket.key), None => {}, @@ -628,7 +628,7 @@ impl> FromIterator<(K, V), T> for HashMap> Extendable<(K, V), T> for HashMap { fn extend(&mut self, iter: &mut T) { - for iter.advance |(k, v)| { + foreach (k, v) in *iter { self.insert(k, v); } } @@ -785,7 +785,7 @@ impl> FromIterator for HashSet { impl> Extendable for HashSet { fn extend(&mut self, iter: &mut T) { - for iter.advance |k| { + foreach k in *iter { self.insert(k); } } @@ -959,7 +959,7 @@ mod test_map { assert!(m.insert(i, i*2)); } let mut observed = 0; - for m.iter().advance |(k, v)| { + foreach (k, v) in m.iter() { assert_eq!(*v, *k * 2); observed |= (1 << *k); } @@ -1036,7 +1036,7 @@ mod test_map { let map: HashMap = xs.iter().transform(|&x| x).collect(); - for xs.iter().advance |&(k, v)| { + foreach &(k, v) in xs.iter() { assert_eq!(map.find(&k), Some(&v)); } } @@ -1045,6 +1045,7 @@ mod test_map { #[cfg(test)] mod test_set { use super::*; + use prelude::*; use container::Container; use vec::ImmutableEqVector; use uint; @@ -1107,7 +1108,7 @@ mod test_set { assert!(a.insert(i)); } let mut observed = 0; - for a.iter().advance |k| { + foreach k in a.iter() { observed |= (1 << *k); } assert_eq!(observed, 0xFFFF_FFFF); @@ -1136,7 +1137,7 @@ mod test_set { let mut i = 0; let expected = [3, 5, 11, 77]; - for a.intersection_iter(&b).advance |x| { + foreach x in a.intersection_iter(&b) { assert!(expected.contains(x)); i += 1 } @@ -1159,7 +1160,7 @@ mod test_set { let mut i = 0; let expected = [1, 5, 11]; - for a.difference_iter(&b).advance |x| { + foreach x in a.difference_iter(&b) { assert!(expected.contains(x)); i += 1 } @@ -1185,7 +1186,7 @@ mod test_set { let mut i = 0; let expected = [-2, 1, 5, 11, 14, 22]; - for a.symmetric_difference_iter(&b).advance |x| { + foreach x in a.symmetric_difference_iter(&b) { assert!(expected.contains(x)); i += 1 } @@ -1215,7 +1216,7 @@ mod test_set { let mut i = 0; let expected = [-2, 1, 3, 5, 9, 11, 13, 16, 19, 24]; - for a.union_iter(&b).advance |x| { + foreach x in a.union_iter(&b) { assert!(expected.contains(x)); i += 1 } @@ -1228,7 +1229,7 @@ mod test_set { let set: HashSet = xs.iter().transform(|&x| x).collect(); - for xs.iter().advance |x: &int| { + foreach x in xs.iter() { assert!(set.contains(x)); } } diff --git a/src/libstd/io.rs b/src/libstd/io.rs index 1a92e5e07c7..cef183d0429 100644 --- a/src/libstd/io.rs +++ b/src/libstd/io.rs @@ -50,12 +50,13 @@ use cast; use clone::Clone; use container::Container; use int; -use iterator::IteratorUtil; +use iterator::Iterator; use libc::consts::os::posix88::*; use libc::{c_int, c_long, c_void, size_t, ssize_t}; use libc; use num; use ops::Drop; +use option::{Some, None}; use os; use path::Path; use ptr; @@ -1279,7 +1280,7 @@ pub fn mk_file_writer(path: &Path, flags: &[FileFlag]) fn wb() -> c_int { O_WRONLY as c_int } let mut fflags: c_int = wb(); - for flags.iter().advance |f| { + foreach f in flags.iter() { match *f { Append => fflags |= O_APPEND as c_int, Create => fflags |= O_CREAT as c_int, @@ -1841,12 +1842,12 @@ pub mod fsync { #[cfg(test)] mod tests { + use prelude::*; use i32; use io::{BytesWriter, SeekCur, SeekEnd, SeekSet}; use io; use path::Path; use result::{Ok, Err}; - use result; use u64; use vec; @@ -1938,7 +1939,7 @@ mod tests { if len <= ivals.len() { assert_eq!(res.len(), len); } - for ivals.iter().zip(res.iter()).advance |(iv, c)| { + foreach (iv, c) in ivals.iter().zip(res.iter()) { assert!(*iv == *c as int) } } @@ -2052,7 +2053,7 @@ mod tests { // write the ints to the file { let file = io::file_writer(&path, [io::Create]).unwrap(); - for uints.iter().advance |i| { + foreach i in uints.iter() { file.write_le_u64(*i); } } @@ -2060,7 +2061,7 @@ mod tests { // then read them back and check that they are the same { let file = io::file_reader(&path).unwrap(); - for uints.iter().advance |i| { + foreach i in uints.iter() { assert_eq!(file.read_le_u64(), *i); } } @@ -2074,7 +2075,7 @@ mod tests { // write the ints to the file { let file = io::file_writer(&path, [io::Create]).unwrap(); - for uints.iter().advance |i| { + foreach i in uints.iter() { file.write_be_u64(*i); } } @@ -2082,7 +2083,7 @@ mod tests { // then read them back and check that they are the same { let file = io::file_reader(&path).unwrap(); - for uints.iter().advance |i| { + foreach i in uints.iter() { assert_eq!(file.read_be_u64(), *i); } } @@ -2096,7 +2097,7 @@ mod tests { // write the ints to the file { let file = io::file_writer(&path, [io::Create]).unwrap(); - for ints.iter().advance |i| { + foreach i in ints.iter() { file.write_be_i32(*i); } } @@ -2104,7 +2105,7 @@ mod tests { // then read them back and check that they are the same { let file = io::file_reader(&path).unwrap(); - for ints.iter().advance |i| { + foreach i in ints.iter() { // this tests that the sign extension is working // (comparing the values as i32 would not test this) assert_eq!(file.read_be_int_n(4), *i as i64); diff --git a/src/libstd/iterator.rs b/src/libstd/iterator.rs index 9fe865333a2..84923876cbf 100644 --- a/src/libstd/iterator.rs +++ b/src/libstd/iterator.rs @@ -295,7 +295,7 @@ pub trait IteratorUtil { /// let mut it = xs.iter().flat_map_(|&x| Counter::new(0u, 1).take_(x)); /// // Check that `it` has the same elements as `ys` /// let mut i = 0; - /// for it.advance |x: uint| { + /// foreach x: uint in it { /// assert_eq!(x, ys[i]); /// i += 1; /// } @@ -330,7 +330,7 @@ pub trait IteratorUtil { /// ~~~ {.rust} /// use std::iterator::Counter; /// - /// for Counter::new(0, 10).advance |i| { + /// foreach i in Counter::new(0, 10) { /// printfln!("%d", i); /// } /// ~~~ @@ -577,7 +577,7 @@ impl> IteratorUtil for T { #[inline] fn last_(&mut self) -> Option { let mut last = None; - for self.advance |x| { last = Some(x); } + foreach x in *self { last = Some(x); } last } @@ -600,20 +600,20 @@ impl> IteratorUtil for T { #[inline] fn all(&mut self, f: &fn(A) -> bool) -> bool { - for self.advance |x| { if !f(x) { return false; } } + foreach x in *self { if !f(x) { return false; } } true } #[inline] fn any(&mut self, f: &fn(A) -> bool) -> bool { - for self.advance |x| { if f(x) { return true; } } + foreach x in *self { if f(x) { return true; } } false } /// Return the first element satisfying the specified predicate #[inline] fn find_(&mut self, predicate: &fn(&A) -> bool) -> Option { - for self.advance |x| { + foreach x in *self { if predicate(&x) { return Some(x) } } None @@ -623,7 +623,7 @@ impl> IteratorUtil for T { #[inline] fn position(&mut self, predicate: &fn(A) -> bool) -> Option { let mut i = 0; - for self.advance |x| { + foreach x in *self { if predicate(x) { return Some(i); } @@ -635,7 +635,7 @@ impl> IteratorUtil for T { #[inline] fn count(&mut self, predicate: &fn(A) -> bool) -> uint { let mut i = 0; - for self.advance |x| { + foreach x in *self { if predicate(x) { i += 1 } } i @@ -1024,7 +1024,7 @@ pub struct Filter<'self, A, T> { impl<'self, A, T: Iterator> Iterator for Filter<'self, A, T> { #[inline] fn next(&mut self) -> Option { - for self.iter.advance |x| { + foreach x in self.iter { if (self.predicate)(&x) { return Some(x); } else { @@ -1068,7 +1068,7 @@ pub struct FilterMap<'self, A, B, T> { impl<'self, A, B, T: Iterator> Iterator for FilterMap<'self, A, B, T> { #[inline] fn next(&mut self) -> Option { - for self.iter.advance |x| { + foreach x in self.iter { match (self.f)(x) { Some(y) => return Some(y), None => () @@ -1372,8 +1372,8 @@ impl<'self, A, T: Iterator, B, U: Iterator> Iterator for #[inline] fn next(&mut self) -> Option { loop { - for self.frontiter.mut_iter().advance |inner| { - for inner.advance |x| { + foreach inner in self.frontiter.mut_iter() { + foreach x in *inner { return Some(x) } } @@ -1402,7 +1402,7 @@ impl<'self, #[inline] fn next_back(&mut self) -> Option { loop { - for self.backiter.mut_iter().advance |inner| { + foreach inner in self.backiter.mut_iter() { match inner.next_back() { None => (), y => return y @@ -1549,7 +1549,7 @@ mod tests { let expected = [0, 1, 2, 3, 4, 5, 30, 40, 50, 60]; let mut it = xs.iter().chain_(ys.iter()); let mut i = 0; - for it.advance |&x| { + foreach &x in it { assert_eq!(x, expected[i]); i += 1; } @@ -1558,7 +1558,7 @@ mod tests { let ys = Counter::new(30u, 10).take_(4); let mut it = xs.iter().transform(|&x| x).chain_(ys); let mut i = 0; - for it.advance |x| { + foreach x in it { assert_eq!(x, expected[i]); i += 1; } @@ -1576,7 +1576,7 @@ mod tests { fn test_iterator_enumerate() { let xs = [0u, 1, 2, 3, 4, 5]; let mut it = xs.iter().enumerate(); - for it.advance |(i, &x)| { + foreach (i, &x) in it { assert_eq!(i, x); } } @@ -1587,7 +1587,7 @@ mod tests { let ys = [0u, 1, 2, 3, 5, 13]; let mut it = xs.iter().take_while(|&x| *x < 15u); let mut i = 0; - for it.advance |&x| { + foreach &x in it { assert_eq!(x, ys[i]); i += 1; } @@ -1600,7 +1600,7 @@ mod tests { let ys = [15, 16, 17, 19]; let mut it = xs.iter().skip_while(|&x| *x < 15u); let mut i = 0; - for it.advance |&x| { + foreach &x in it { assert_eq!(x, ys[i]); i += 1; } @@ -1613,7 +1613,7 @@ mod tests { let ys = [13, 15, 16, 17, 19, 20, 30]; let mut it = xs.iter().skip(5); let mut i = 0; - for it.advance |&x| { + foreach &x in it { assert_eq!(x, ys[i]); i += 1; } @@ -1626,7 +1626,7 @@ mod tests { let ys = [0u, 1, 2, 3, 5]; let mut it = xs.iter().take_(5); let mut i = 0; - for it.advance |&x| { + foreach &x in it { assert_eq!(x, ys[i]); i += 1; } @@ -1645,7 +1645,7 @@ mod tests { let mut it = xs.iter().scan(0, add); let mut i = 0; - for it.advance |x| { + foreach x in it { assert_eq!(x, ys[i]); i += 1; } @@ -1658,7 +1658,7 @@ mod tests { let ys = [0u, 1, 2, 3, 4, 5, 6, 7, 8]; let mut it = xs.iter().flat_map_(|&x| Counter::new(x, 1).take_(3)); let mut i = 0; - for it.advance |x: uint| { + foreach x in it { assert_eq!(x, ys[i]); i += 1; } @@ -1693,7 +1693,7 @@ mod tests { 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; } @@ -1705,7 +1705,7 @@ mod tests { let cycle_len = 3; let it = Counter::new(0u,1).take_(cycle_len).cycle(); assert_eq!(it.size_hint(), (uint::max_value, None)); - for it.take_(100).enumerate().advance |(i, x)| { + foreach (i, x) in it.take_(100).enumerate() { assert_eq!(i % cycle_len, x); } @@ -1931,7 +1931,7 @@ mod tests { let mut b = a.clone(); assert_eq!(len, b.indexable()); let mut n = 0; - for a.enumerate().advance |(i, elt)| { + foreach (i, elt) in a.enumerate() { assert_eq!(Some(elt), b.idx(i)); n += 1; } @@ -2021,7 +2021,7 @@ mod tests { // test .transform and .peek_ that don't implement Clone let it = xs.iter().peek_(|_| {}); assert_eq!(xs.len(), it.indexable()); - for xs.iter().enumerate().advance |(i, elt)| { + foreach (i, elt) in xs.iter().enumerate() { assert_eq!(Some(elt), it.idx(i)); } @@ -2034,7 +2034,7 @@ mod tests { // test .transform and .peek_ that don't implement Clone let it = xs.iter().transform(|x| *x); assert_eq!(xs.len(), it.indexable()); - for xs.iter().enumerate().advance |(i, elt)| { + foreach (i, elt) in xs.iter().enumerate() { assert_eq!(Some(*elt), it.idx(i)); } } diff --git a/src/libstd/option.rs b/src/libstd/option.rs index 6e4880550eb..7eca47743d6 100644 --- a/src/libstd/option.rs +++ b/src/libstd/option.rs @@ -50,8 +50,6 @@ use iterator::Iterator; use str::StrSlice; use clone::DeepClone; -#[cfg(test)] use iterator::IteratorUtil; - /// The option type #[deriving(Clone, DeepClone, Eq)] pub enum Option { @@ -499,7 +497,7 @@ mod tests { let x = Some(()); let mut y = Some(5); let mut y2 = 0; - for x.iter().advance |_x| { + foreach _x in x.iter() { y2 = y.take_unwrap(); } assert_eq!(y2, 5); diff --git a/src/libstd/os.rs b/src/libstd/os.rs index 2802fc30c33..3afd946ee26 100644 --- a/src/libstd/os.rs +++ b/src/libstd/os.rs @@ -220,7 +220,7 @@ pub fn env() -> ~[(~str,~str)] { fn env_convert(input: ~[~str]) -> ~[(~str, ~str)] { let mut pairs = ~[]; - for input.iter().advance |p| { + foreach p in input.iter() { let vs: ~[&str] = p.splitn_iter('=', 1).collect(); debug!("splitting: len: %u", vs.len()); @@ -1419,7 +1419,7 @@ impl MemoryMap { let mut offset: off_t = 0; let len = round_up(min_len, page_size()) as size_t; - for options.iter().advance |&o| { + foreach &o in options.iter() { match o { MapReadable => { prot |= libc::PROT_READ; }, MapWritable => { prot |= libc::PROT_WRITE; }, @@ -1492,7 +1492,7 @@ impl MemoryMap { let mut offset: uint = 0; let len = round_up(min_len, page_size()) as SIZE_T; - for options.iter().advance |&o| { + foreach &o in options.iter() { match o { MapReadable => { readable = true; }, MapWritable => { writable = true; }, @@ -1788,7 +1788,7 @@ mod tests { fn test_env_getenv() { let e = env(); assert!(e.len() > 0u); - for e.iter().advance |p| { + foreach p in e.iter() { let (n, v) = (*p).clone(); debug!(n.clone()); let v2 = getenv(n); @@ -1832,7 +1832,7 @@ mod tests { setenv("HOME", ""); assert!(os::homedir().is_none()); - for oldhome.iter().advance |s| { setenv("HOME", *s) } + foreach s in oldhome.iter() { setenv("HOME", *s) } } #[test] @@ -1880,7 +1880,7 @@ mod tests { // Just assuming that we've got some contents in the current directory assert!(dirs.len() > 0u); - for dirs.iter().advance |dir| { + foreach dir in dirs.iter() { debug!((*dir).clone()); } } diff --git a/src/libstd/path.rs b/src/libstd/path.rs index af6bfc16e54..989a5cbd35b 100644 --- a/src/libstd/path.rs +++ b/src/libstd/path.rs @@ -19,7 +19,7 @@ Cross-platform file path handling use clone::Clone; use container::Container; use cmp::Eq; -use iterator::IteratorUtil; +use iterator::{Iterator, IteratorUtil}; use libc; use option::{None, Option, Some}; use str::{OwnedStr, Str, StrSlice, StrVector}; @@ -647,8 +647,8 @@ impl GenericPath for PosixPath { fn push_many(&self, cs: &[S]) -> PosixPath { let mut v = self.components.clone(); - for cs.iter().advance |e| { - for e.as_slice().split_iter(posix::is_sep).advance |s| { + foreach e in cs.iter() { + foreach s in e.as_slice().split_iter(posix::is_sep) { if !s.is_empty() { v.push(s.to_owned()) } @@ -662,7 +662,7 @@ impl GenericPath for PosixPath { fn push(&self, s: &str) -> PosixPath { let mut v = self.components.clone(); - for s.split_iter(posix::is_sep).advance |s| { + foreach s in s.split_iter(posix::is_sep) { if !s.is_empty() { v.push(s.to_owned()) } @@ -922,8 +922,8 @@ impl GenericPath for WindowsPath { fn push_many(&self, cs: &[S]) -> WindowsPath { let mut v = self.components.clone(); - for cs.iter().advance |e| { - for e.as_slice().split_iter(windows::is_sep).advance |s| { + foreach e in cs.iter() { + foreach s in e.as_slice().split_iter(windows::is_sep) { if !s.is_empty() { v.push(s.to_owned()) } @@ -940,7 +940,7 @@ impl GenericPath for WindowsPath { fn push(&self, s: &str) -> WindowsPath { let mut v = self.components.clone(); - for s.split_iter(windows::is_sep).advance |s| { + foreach s in s.split_iter(windows::is_sep) { if !s.is_empty() { v.push(s.to_owned()) } @@ -989,7 +989,7 @@ impl GenericPath for WindowsPath { pub fn normalize(components: &[~str]) -> ~[~str] { let mut cs = ~[]; - for components.iter().advance |c| { + foreach c in components.iter() { if *c == ~"." && components.len() > 1 { loop; } if *c == ~"" { loop; } if *c == ~".." && cs.len() != 0 { diff --git a/src/libstd/pipes.rs b/src/libstd/pipes.rs index 07b435f1b64..a2ad2eb5e76 100644 --- a/src/libstd/pipes.rs +++ b/src/libstd/pipes.rs @@ -87,7 +87,7 @@ bounded and unbounded protocols allows for less code duplication. use container::Container; use cast::{forget, transmute, transmute_copy, transmute_mut}; use either::{Either, Left, Right}; -use iterator::IteratorUtil; +use iterator::{Iterator, IteratorUtil}; use kinds::Send; use libc; use ops::Drop; @@ -600,7 +600,7 @@ pub fn wait_many(pkts: &mut [T]) -> uint { let mut data_avail = false; let mut ready_packet = pkts.len(); - for pkts.mut_iter().enumerate().advance |(i, p)| { + foreach (i, p) in pkts.mut_iter().enumerate() { unsafe { let p = &mut *p.header(); let old = p.mark_blocked(this); @@ -622,7 +622,7 @@ pub fn wait_many(pkts: &mut [T]) -> uint { let event = wait_event(this) as *PacketHeader; let mut pos = None; - for pkts.mut_iter().enumerate().advance |(i, p)| { + foreach (i, p) in pkts.mut_iter().enumerate() { if p.header() == event { pos = Some(i); break; @@ -640,7 +640,7 @@ pub fn wait_many(pkts: &mut [T]) -> uint { debug!("%?", &mut pkts[ready_packet]); - for pkts.mut_iter().advance |p| { + foreach p in pkts.mut_iter() { unsafe { (*p.header()).unblock() } @@ -851,7 +851,7 @@ pub fn select(mut endpoints: ~[RecvPacketBuffered]) Option, ~[RecvPacketBuffered]) { let mut endpoint_headers = ~[]; - for endpoints.mut_iter().advance |endpoint| { + foreach endpoint in endpoints.mut_iter() { endpoint_headers.push(endpoint.header()); } diff --git a/src/libstd/rand.rs b/src/libstd/rand.rs index 6d0613b2e67..aed68f47fdf 100644 --- a/src/libstd/rand.rs +++ b/src/libstd/rand.rs @@ -48,7 +48,6 @@ use clone::Clone; use cmp; use container::Container; use int; -use iterator::IteratorUtil; use local_data; use num; use prelude::*; @@ -495,7 +494,7 @@ impl RngUtil for R { fn gen_char_from(&mut self, chars: &str) -> char { assert!(!chars.is_empty()); let mut cs = ~[]; - for chars.iter().advance |c| { cs.push(c) } + foreach c in chars.iter() { cs.push(c) } self.choose(cs) } @@ -559,7 +558,7 @@ impl RngUtil for R { fn choose_weighted_option(&mut self, v: &[Weighted]) -> Option { let mut total = 0u; - for v.iter().advance |item| { + foreach item in v.iter() { total += item.weight; } if total == 0u { @@ -567,7 +566,7 @@ impl RngUtil for R { } let chosen = self.gen_uint_range(0u, total); let mut so_far = 0u; - for v.iter().advance |item| { + foreach item in v.iter() { so_far += item.weight; if so_far > chosen { return Some(item.item.clone()); @@ -582,7 +581,7 @@ impl RngUtil for R { */ fn weighted_vec(&mut self, v: &[Weighted]) -> ~[T] { let mut r = ~[]; - for v.iter().advance |item| { + foreach item in v.iter() { for uint::range(0u, item.weight) |_i| { r.push(item.item.clone()); } @@ -763,7 +762,7 @@ impl IsaacRng { ); let r = [(0, MIDPOINT), (MIDPOINT, 0)]; - for r.iter().advance |&(mr_offset, m2_offset)| { + foreach &(mr_offset, m2_offset) in r.iter() { for uint::range_step(0, MIDPOINT, 4) |base| { rngstep!(0, 13); rngstep!(1, -6); @@ -1142,4 +1141,4 @@ mod bench { rng.shuffle_mut(x); } } -} \ No newline at end of file +} diff --git a/src/libstd/repr.rs b/src/libstd/repr.rs index 60bd30bbee8..edab639dfbe 100644 --- a/src/libstd/repr.rs +++ b/src/libstd/repr.rs @@ -20,8 +20,9 @@ use cast::transmute; use char; use container::Container; use io::{Writer, WriterUtil}; -use iterator::IteratorUtil; +use iterator::Iterator; use libc::c_void; +use option::{Some, None}; use ptr; use reflect; use reflect::{MovePtr, align}; @@ -175,7 +176,7 @@ impl ReprVisitor { pub fn write_escaped_slice(&self, slice: &str) { self.writer.write_char('"'); - for slice.iter().advance |ch| { + foreach ch in slice.iter() { self.writer.write_escaped_char(ch); } self.writer.write_char('"'); diff --git a/src/libstd/result.rs b/src/libstd/result.rs index c045c191488..89803d022f8 100644 --- a/src/libstd/result.rs +++ b/src/libstd/result.rs @@ -15,7 +15,7 @@ use clone::Clone; use cmp::Eq; use either; -use iterator::IteratorUtil; +use iterator::Iterator; use option::{None, Option, Some}; use vec; use vec::{OwnedVector, ImmutableVector}; @@ -263,7 +263,7 @@ impl Result { pub fn map_vec(ts: &[T], op: &fn(&T) -> Result) -> Result<~[V],U> { let mut vs: ~[V] = vec::with_capacity(ts.len()); - for ts.iter().advance |t| { + foreach t in ts.iter() { match op(t) { Ok(v) => vs.push(v), Err(u) => return Err(u) diff --git a/src/libstd/rt/borrowck.rs b/src/libstd/rt/borrowck.rs index 2d489e4dbc3..bb66a901234 100644 --- a/src/libstd/rt/borrowck.rs +++ b/src/libstd/rt/borrowck.rs @@ -83,7 +83,7 @@ unsafe fn fail_borrowed(box: *mut raw::Box<()>, file: *c_char, line: size_t) { Some(borrow_list) => { // recording borrows let mut msg = ~"borrowed"; let mut sep = " at "; - for borrow_list.rev_iter().advance |entry| { + foreach entry in borrow_list.rev_iter() { if entry.box == box { msg.push_str(sep); let filename = str::raw::from_c_str(entry.file); diff --git a/src/libstd/rt/mod.rs b/src/libstd/rt/mod.rs index dc8669b9264..44418001f14 100644 --- a/src/libstd/rt/mod.rs +++ b/src/libstd/rt/mod.rs @@ -64,7 +64,7 @@ use cell::Cell; use clone::Clone; use container::Container; use iter::Times; -use iterator::IteratorUtil; +use iterator::{Iterator, IteratorUtil}; use option::{Some, None}; use ptr::RawPtr; use rt::sched::{Scheduler, Shutdown}; @@ -291,7 +291,7 @@ fn run_(main: ~fn(), use_main_sched: bool) -> int { let on_exit: ~fn(bool) = |exit_success| { let mut handles = handles.take(); - for handles.mut_iter().advance |handle| { + foreach handle in handles.mut_iter() { handle.send(Shutdown); } @@ -346,7 +346,7 @@ fn run_(main: ~fn(), use_main_sched: bool) -> int { } // Wait for schedulers - for threads.consume_iter().advance() |thread| { + foreach thread in threads.consume_iter() { thread.join(); } diff --git a/src/libstd/rt/select.rs b/src/libstd/rt/select.rs index bc9e265c8d9..6296186aa49 100644 --- a/src/libstd/rt/select.rs +++ b/src/libstd/rt/select.rs @@ -37,7 +37,7 @@ pub fn select(ports: &mut [A]) -> uint { fail!("can't select on an empty list"); } - for ports.mut_iter().enumerate().advance |(index, port)| { + foreach (index, port) in ports.mut_iter().enumerate() { if port.optimistic_check() { return index; } @@ -66,7 +66,7 @@ pub fn select(ports: &mut [A]) -> uint { // Task resumes. Now unblock ourselves from all the ports we blocked on. // If the success index wasn't reset, 'take' will just take all of them. // Iterate in reverse so the 'earliest' index that's ready gets returned. - for ports.mut_slice(0, ready_index).mut_rev_iter().enumerate().advance |(index, port)| { + foreach (index, port) in ports.mut_slice(0, ready_index).mut_rev_iter().enumerate() { if port.unblock_from() { ready_index = index; } @@ -127,7 +127,7 @@ mod test { let (ports, chans) = unzip(from_fn(num_ports, |_| oneshot::<()>())); let mut dead_chans = ~[]; let mut ports = ports; - for chans.consume_iter().enumerate().advance |(i, chan)| { + foreach (i, chan) in chans.consume_iter().enumerate() { if send_on_chans.contains(&i) { chan.send(()); } else { @@ -144,7 +144,7 @@ mod test { let (ports, chans) = unzip(from_fn(num_ports, |_| stream::<()>())); let mut dead_chans = ~[]; let mut ports = ports; - for chans.consume_iter().enumerate().advance |(i, chan)| { + foreach (i, chan) in chans.consume_iter().enumerate() { if send_on_chans.contains(&i) { chan.send(()); } else { @@ -191,7 +191,7 @@ mod test { let mut ports = ports; let mut port = Some(port); let order = [5u,0,4,3,2,6,9,8,7,1]; - for order.iter().advance |&index| { + foreach &index in order.iter() { // put the port in the vector at any index util::swap(port.get_mut_ref(), &mut ports[index]); assert!(select(ports) == index); diff --git a/src/libstd/rt/test.rs b/src/libstd/rt/test.rs index 260903cbcbf..ec1094ed4f2 100644 --- a/src/libstd/rt/test.rs +++ b/src/libstd/rt/test.rs @@ -14,7 +14,7 @@ use option::{Some, None}; use cell::Cell; use clone::Clone; use container::Container; -use iterator::IteratorUtil; +use iterator::Iterator; use vec::{OwnedVector, MutableVector}; use super::io::net::ip::{IpAddr, Ipv4, Ipv6}; use rt::sched::Scheduler; @@ -100,7 +100,7 @@ pub fn run_in_mt_newsched_task(f: ~fn()) { let on_exit: ~fn(bool) = |exit_status| { let mut handles = handles.take(); // Tell schedulers to exit - for handles.mut_iter().advance |handle| { + foreach handle in handles.mut_iter() { handle.send(Shutdown); } @@ -125,7 +125,7 @@ pub fn run_in_mt_newsched_task(f: ~fn()) { } // Wait for schedulers - for threads.consume_iter().advance() |thread| { + foreach thread in threads.consume_iter() { thread.join(); } } @@ -380,7 +380,7 @@ fn base_port() -> uint { let mut final_base = base; - for bases.iter().advance |&(dir, base)| { + foreach &(dir, base) in bases.iter() { if path.contains(dir) { final_base = base; break; diff --git a/src/libstd/rt/uv/net.rs b/src/libstd/rt/uv/net.rs index 8ea4a197269..773adb3848a 100644 --- a/src/libstd/rt/uv/net.rs +++ b/src/libstd/rt/uv/net.rs @@ -606,6 +606,7 @@ mod test { use rt::test::*; use rt::uv::{Loop, AllocCallback}; use rt::uv::{vec_from_uv_buf, vec_to_uv_buf, slice_to_uv_buf}; + use prelude::*; #[test] fn connect_close_ip4() { @@ -700,7 +701,7 @@ mod test { if status.is_none() { rtdebug!("got %d bytes", nread); let buf = buf.unwrap(); - for buf.slice(0, nread as uint).iter().advance() |byte| { + foreach byte in buf.slice(0, nread as uint).iter() { assert!(*byte == count as u8); rtdebug!("%u", *byte as uint); count += 1; @@ -776,7 +777,7 @@ mod test { rtdebug!("got %d bytes", nread); let buf = buf.unwrap(); let r = buf.slice(0, nread as uint); - for r.iter().advance |byte| { + foreach byte in r.iter() { assert!(*byte == count as u8); rtdebug!("%u", *byte as uint); count += 1; @@ -847,7 +848,7 @@ mod test { rtdebug!("got %d bytes", nread); let buf = buf.unwrap(); - for buf.slice(0, nread as uint).iter().advance() |&byte| { + foreach &byte in buf.slice(0, nread as uint).iter() { assert!(byte == count as u8); rtdebug!("%u", byte as uint); count += 1; @@ -907,7 +908,7 @@ mod test { rtdebug!("got %d bytes", nread); let buf = buf.unwrap(); - for buf.slice(0, nread as uint).iter().advance() |&byte| { + foreach &byte in buf.slice(0, nread as uint).iter() { assert!(byte == count as u8); rtdebug!("%u", byte as uint); count += 1; diff --git a/src/libstd/run.rs b/src/libstd/run.rs index 122bc42c4cc..acdc97da58c 100644 --- a/src/libstd/run.rs +++ b/src/libstd/run.rs @@ -16,7 +16,6 @@ use cast; use clone::Clone; use comm::{stream, SharedChan, GenericChan, GenericPort}; use io; -use iterator::IteratorUtil; use libc::{pid_t, c_void, c_int}; use libc; use option::{Some, None}; @@ -175,9 +174,9 @@ impl Process { in_fd, out_fd, err_fd); unsafe { - for in_pipe.iter().advance |pipe| { libc::close(pipe.input); } - for out_pipe.iter().advance |pipe| { libc::close(pipe.out); } - for err_pipe.iter().advance |pipe| { libc::close(pipe.out); } + foreach pipe in in_pipe.iter() { libc::close(pipe.input); } + foreach pipe in out_pipe.iter() { libc::close(pipe.out); } + foreach pipe in err_pipe.iter() { libc::close(pipe.out); } } Process { @@ -322,7 +321,7 @@ impl Process { * If the child has already been finished then the exit code is returned. */ pub fn finish(&mut self) -> int { - for self.exit_code.iter().advance |&code| { + foreach &code in self.exit_code.iter() { return code; } self.close_input(); @@ -521,7 +520,7 @@ fn spawn_process_os(prog: &str, args: &[~str], CloseHandle(si.hStdOutput); CloseHandle(si.hStdError); - for create_err.iter().advance |msg| { + foreach msg in create_err.iter() { fail!("failure in CreateProcess: %s", *msg); } @@ -580,7 +579,7 @@ pub fn make_command_line(prog: &str, args: &[~str]) -> ~str { let mut cmd = ~""; append_arg(&mut cmd, prog); - for args.iter().advance |arg| { + foreach arg in args.iter() { cmd.push_char(' '); append_arg(&mut cmd, *arg); } @@ -697,7 +696,7 @@ fn with_argv(prog: &str, args: &[~str], cb: &fn(**libc::c_char) -> T) -> T { let mut argptrs = ~[prog.as_c_str(|b| b)]; let mut tmps = ~[]; - for args.iter().advance |arg| { + foreach arg in args.iter() { let t = @(*arg).clone(); tmps.push(t); argptrs.push(t.as_c_str(|b| b)); @@ -715,7 +714,7 @@ fn with_envp(env: Option<&[(~str, ~str)]>, cb: &fn(*c_void) -> T) -> T { let mut tmps = ~[]; let mut ptrs = ~[]; - for es.iter().advance |pair| { + foreach pair in es.iter() { // Use of match here is just to workaround limitations // in the stage0 irrefutable pattern impl. match pair { @@ -744,7 +743,7 @@ fn with_envp(env: Option<&[(~str, ~str)]>, cb: &fn(*mut c_void) -> T) -> T { match env { Some(es) => { let mut blk = ~[]; - for es.iter().advance |pair| { + foreach pair in es.iter() { let kv = fmt!("%s=%s", pair.first(), pair.second()); blk.push_all(kv.to_bytes_with_null()); } @@ -1300,7 +1299,7 @@ mod tests { let output = str::from_bytes(prog.finish_with_output().output); let r = os::env(); - for r.iter().advance |&(ref k, ref v)| { + foreach &(ref k, ref v) in r.iter() { // don't check windows magical empty-named variables assert!(k.is_empty() || output.contains(fmt!("%s=%s", *k, *v))); } @@ -1314,7 +1313,7 @@ mod tests { let output = str::from_bytes(prog.finish_with_output().output); let r = os::env(); - for r.iter().advance |&(k, v)| { + foreach &(k, v) in r.iter() { // don't check android RANDOM variables if k != ~"RANDOM" { assert!(output.contains(fmt!("%s=%s", k, v)) || diff --git a/src/libstd/str.rs b/src/libstd/str.rs index b0ae719e00f..894351bcc53 100644 --- a/src/libstd/str.rs +++ b/src/libstd/str.rs @@ -149,7 +149,7 @@ pub fn from_char(ch: char) -> ~str { pub fn from_chars(chs: &[char]) -> ~str { let mut buf = ~""; buf.reserve(chs.len()); - for chs.iter().advance |ch| { + foreach ch in chs.iter() { buf.push_char(*ch) } buf @@ -178,7 +178,7 @@ impl<'self, S: Str> StrVector for &'self [S] { unsafe { do s.as_mut_buf |buf, _| { let mut buf = buf; - for self.iter().advance |ss| { + foreach ss in self.iter() { do ss.as_slice().as_imm_buf |ssbuf, sslen| { let sslen = sslen - 1; ptr::copy_memory(buf, ssbuf, sslen); @@ -211,7 +211,7 @@ impl<'self, S: Str> StrVector for &'self [S] { do sep.as_imm_buf |sepbuf, seplen| { let seplen = seplen - 1; let mut buf = cast::transmute_mut_unsafe(buf); - for self.iter().advance |ss| { + foreach ss in self.iter() { do ss.as_slice().as_imm_buf |ssbuf, sslen| { let sslen = sslen - 1; if first { @@ -486,7 +486,7 @@ impl<'self> Iterator<&'self str> for StrSplitIterator<'self> { pub fn replace(s: &str, from: &str, to: &str) -> ~str { let mut result = ~""; let mut last_end = 0; - for s.matches_index_iter(from).advance |(start, end)| { + foreach (start, end) in s.matches_index_iter(from) { result.push_str(unsafe{raw::slice_bytes(s, last_end, start)}); result.push_str(to); last_end = end; @@ -556,7 +556,7 @@ Section: Searching // Utility used by various searching functions fn match_at<'a,'b>(haystack: &'a str, needle: &'b str, at: uint) -> bool { let mut i = at; - for needle.byte_iter().advance |c| { if haystack[i] != c { return false; } i += 1u; } + foreach c in needle.byte_iter() { if haystack[i] != c { return false; } i += 1u; } return true; } @@ -769,6 +769,7 @@ priv static MAX_UNICODE: uint = 1114112u; /// Unsafe operations pub mod raw { + use option::Some; use cast; use libc; use ptr; @@ -886,7 +887,7 @@ pub mod raw { unsafe fn push_bytes(s: &mut ~str, bytes: &[u8]) { let new_len = s.len() + bytes.len(); s.reserve_at_least(new_len); - for bytes.iter().advance |byte| { push_byte(&mut *s, *byte); } + foreach byte in bytes.iter() { push_byte(&mut *s, *byte); } } /// Removes the last byte from a string and returns it. (Not UTF-8 safe). @@ -938,6 +939,7 @@ pub mod traits { use ops::Add; use cmp::{TotalOrd, Ordering, Less, Equal, Greater, Eq, Ord, Equiv, TotalEq}; use super::{Str, eq_slice}; + use option::{Some, None}; impl<'self> Add<&'self str,~str> for &'self str { #[inline] @@ -951,7 +953,7 @@ pub mod traits { impl<'self> TotalOrd for &'self str { #[inline] fn cmp(&self, other: & &'self str) -> Ordering { - for self.byte_iter().zip(other.byte_iter()).advance |(s_b, o_b)| { + foreach (s_b, o_b) in self.byte_iter().zip(other.byte_iter()) { match s_b.cmp(&o_b) { Greater => return Greater, Less => return Less, @@ -1453,7 +1455,7 @@ impl<'self> StrSlice<'self> for &'self str { fn escape_default(&self) -> ~str { let mut out: ~str = ~""; out.reserve_at_least(self.len()); - for self.iter().advance |c| { + foreach c in self.iter() { do c.escape_default |c| { out.push_char(c); } @@ -1465,7 +1467,7 @@ impl<'self> StrSlice<'self> for &'self str { fn escape_unicode(&self) -> ~str { let mut out: ~str = ~""; out.reserve_at_least(self.len()); - for self.iter().advance |c| { + foreach c in self.iter() { do c.escape_unicode |c| { out.push_char(c); } @@ -1567,7 +1569,7 @@ impl<'self> StrSlice<'self> for &'self str { pub fn replace(&self, from: &str, to: &str) -> ~str { let mut result = ~""; let mut last_end = 0; - for self.matches_index_iter(from).advance |(start, end)| { + foreach (start, end) in self.matches_index_iter(from) { result.push_str(unsafe{raw::slice_bytes(*self, last_end, start)}); result.push_str(to); last_end = end; @@ -1605,7 +1607,7 @@ impl<'self> StrSlice<'self> for &'self str { /// Converts to a vector of `u16` encoded as UTF-16. fn to_utf16(&self) -> ~[u16] { let mut u = ~[]; - for self.iter().advance |ch| { + foreach ch in self.iter() { // Arithmetic with u32 literals is easier on the eyes than chars. let mut ch = ch as u32; @@ -1758,12 +1760,12 @@ impl<'self> StrSlice<'self> for &'self str { /// or `None` if there is no match fn find(&self, search: C) -> Option { if search.only_ascii() { - for self.byte_iter().enumerate().advance |(i, b)| { + foreach (i, b) in self.byte_iter().enumerate() { if search.matches(b as char) { return Some(i) } } } else { let mut index = 0; - for self.iter().advance |c| { + foreach c in self.iter() { if search.matches(c) { return Some(index); } index += c.len_utf8_bytes(); } @@ -1781,12 +1783,12 @@ impl<'self> StrSlice<'self> for &'self str { fn rfind(&self, search: C) -> Option { let mut index = self.len(); if search.only_ascii() { - for self.byte_rev_iter().advance |b| { + foreach b in self.byte_rev_iter() { index -= 1; if search.matches(b as char) { return Some(index); } } } else { - for self.rev_iter().advance |c| { + foreach c in self.rev_iter() { index -= c.len_utf8_bytes(); if search.matches(c) { return Some(index); } } @@ -1855,7 +1857,7 @@ impl<'self> StrSlice<'self> for &'self str { /// Apply a function to each character. fn map_chars(&self, ff: &fn(char) -> char) -> ~str { let mut result = with_capacity(self.len()); - for self.iter().advance |cc| { + foreach cc in self.iter() { result.push_char(ff(cc)); } result @@ -1871,12 +1873,12 @@ impl<'self> StrSlice<'self> for &'self str { let mut dcol = vec::from_fn(tlen + 1, |x| x); - for self.iter().enumerate().advance |(i, sc)| { + foreach (i, sc) in self.iter().enumerate() { let mut current = i; dcol[0] = current + 1; - for t.iter().enumerate().advance |(j, tc)| { + foreach (j, tc) in t.iter().enumerate() { let next = dcol[j + 1]; @@ -1903,7 +1905,7 @@ impl<'self> StrSlice<'self> for &'self str { /// ~~~ {.rust} /// let string = "a\nb\nc"; /// let mut lines = ~[]; - /// for string.line_iter().advance |line| { lines.push(line) } + /// foreach line in string.line_iter() { lines.push(line) } /// /// assert!(string.subslice_offset(lines[0]) == 0); // &"a" /// assert!(string.subslice_offset(lines[1]) == 2); // &"b" @@ -2238,7 +2240,7 @@ impl> Extendable for ~str { let (lower, _) = iterator.size_hint(); let reserve = lower + self.len(); self.reserve_at_least(reserve); - for iterator.advance |ch| { + foreach ch in *iterator { self.push_char(ch) } } @@ -2269,7 +2271,6 @@ mod tests { use libc; use ptr; use str::*; - use uint; use vec; use vec::{ImmutableVector, CopyableVector}; use cmp::{TotalOrd, Less, Equal, Greater}; @@ -3055,7 +3056,7 @@ mod tests { let string = "a\nb\nc"; let mut lines = ~[]; - for string.line_iter().advance |line| { lines.push(line) } + foreach line in string.line_iter() { lines.push(line) } assert_eq!(string.subslice_offset(lines[0]), 0); assert_eq!(string.subslice_offset(lines[1]), 2); assert_eq!(string.subslice_offset(lines[2]), 4); @@ -3159,7 +3160,7 @@ mod tests { 0xd801_u16, 0xdc95_u16, 0xd801_u16, 0xdc86_u16, 0x000a_u16 ]) ]; - for pairs.iter().advance |p| { + foreach p in pairs.iter() { let (s, u) = (*p).clone(); assert!(s.to_utf16() == u); assert!(from_utf16(u) == s); @@ -3173,7 +3174,7 @@ mod tests { let s = ~"ศไทย中华Việt Nam"; let v = ~['ศ','ไ','ท','ย','中','华','V','i','ệ','t',' ','N','a','m']; let mut pos = 0; - for v.iter().advance |ch| { + foreach ch in v.iter() { assert!(s.char_at(pos) == *ch); pos += from_char(*ch).len(); } @@ -3184,7 +3185,7 @@ mod tests { let s = ~"ศไทย中华Việt Nam"; let v = ~['ศ','ไ','ท','ย','中','华','V','i','ệ','t',' ','N','a','m']; let mut pos = s.len(); - for v.rev_iter().advance |ch| { + foreach ch in v.rev_iter() { assert!(s.char_at_reverse(pos) == *ch); pos -= from_char(*ch).len(); } @@ -3276,7 +3277,7 @@ mod tests { let mut pos = 0; let mut it = s.iter(); - for it.advance |c| { + foreach c in it { assert_eq!(c, v[pos]); pos += 1; } @@ -3292,7 +3293,7 @@ mod tests { let mut pos = 0; let mut it = s.rev_iter(); - for it.advance |c| { + foreach c in it { assert_eq!(c, v[pos]); pos += 1; } @@ -3309,7 +3310,7 @@ mod tests { ]; let mut pos = 0; - for s.byte_iter().advance |b| { + foreach b in s.byte_iter() { assert_eq!(b, v[pos]); pos += 1; } @@ -3325,7 +3326,7 @@ mod tests { ]; let mut pos = v.len(); - for s.byte_rev_iter().advance |b| { + foreach b in s.byte_rev_iter() { pos -= 1; assert_eq!(b, v[pos]); } @@ -3341,7 +3342,7 @@ mod tests { let mut pos = 0; let mut it = s.char_offset_iter(); - for it.advance |c| { + foreach c in it { assert_eq!(c, (p[pos], v[pos])); pos += 1; } @@ -3359,7 +3360,7 @@ mod tests { let mut pos = 0; let mut it = s.char_offset_rev_iter(); - for it.advance |c| { + foreach c in it { assert_eq!(c, (p[pos], v[pos])); pos += 1; } diff --git a/src/libstd/str/ascii.rs b/src/libstd/str/ascii.rs index 24e48dbe139..3f24f98bd3d 100644 --- a/src/libstd/str/ascii.rs +++ b/src/libstd/str/ascii.rs @@ -14,9 +14,10 @@ use to_str::{ToStr,ToStrConsume}; use str; use str::StrSlice; use cast; -use iterator::IteratorUtil; +use iterator::{Iterator, IteratorUtil}; use vec::{CopyableVector, ImmutableVector, OwnedVector}; use to_bytes::IterBytes; +use option::{Some, None}; /// Datatype to hold one ascii character. It wraps a `u8`, with the highest bit always zero. #[deriving(Clone, Eq)] @@ -93,7 +94,7 @@ impl<'self> AsciiCast<&'self[Ascii]> for &'self [u8] { #[inline] fn is_ascii(&self) -> bool { - for self.iter().advance |b| { + foreach b in self.iter() { if !b.is_ascii() { return false; } } true diff --git a/src/libstd/task/local_data_priv.rs b/src/libstd/task/local_data_priv.rs index 477981c65e5..69c4bb20caf 100644 --- a/src/libstd/task/local_data_priv.rs +++ b/src/libstd/task/local_data_priv.rs @@ -167,7 +167,7 @@ pub unsafe fn local_pop(handle: Handle, let map = get_local_map(handle); let key_value = key_to_key_value(key); - for map.mut_iter().advance |entry| { + foreach entry in map.mut_iter() { match *entry { Some((k, _, loan)) if k == key_value => { if loan != NoLoan { diff --git a/src/libstd/task/spawn.rs b/src/libstd/task/spawn.rs index 54e46826976..c7f34974a6e 100644 --- a/src/libstd/task/spawn.rs +++ b/src/libstd/task/spawn.rs @@ -96,7 +96,6 @@ use rt::local::Local; use rt::task::Task; use rt::kill::KillHandle; use rt::sched::Scheduler; -use iterator::IteratorUtil; #[cfg(test)] use task::default_task_opts; #[cfg(test)] use comm; @@ -356,7 +355,7 @@ impl Drop for Taskgroup { // If we are failing, the whole taskgroup needs to die. do RuntimeGlue::with_task_handle_and_failing |me, failing| { if failing { - for this.notifier.mut_iter().advance |x| { + foreach x in this.notifier.mut_iter() { x.failed = true; } // Take everybody down with us. @@ -385,7 +384,7 @@ pub fn Taskgroup(tasks: TaskGroupArc, ancestors: AncestorList, is_main: bool, mut notifier: Option) -> Taskgroup { - for notifier.mut_iter().advance |x| { + foreach x in notifier.mut_iter() { x.failed = false; } @@ -463,13 +462,13 @@ fn kill_taskgroup(state: TaskGroupInner, me: &TaskHandle, is_main: bool) { if newstate.is_some() { let TaskGroupData { members: members, descendants: descendants } = newstate.unwrap(); - for members.consume().advance |sibling| { + foreach sibling in members.consume() { // Skip self - killing ourself won't do much good. if &sibling != me { RuntimeGlue::kill_task(sibling); } } - for descendants.consume().advance |child| { + foreach child in descendants.consume() { assert!(&child != me); RuntimeGlue::kill_task(child); } diff --git a/src/libstd/to_str.rs b/src/libstd/to_str.rs index 50cbd36ced9..b87a1657065 100644 --- a/src/libstd/to_str.rs +++ b/src/libstd/to_str.rs @@ -14,11 +14,12 @@ The `ToStr` trait for converting to strings */ +use option::{Some, None}; use str::OwnedStr; use hashmap::HashMap; use hashmap::HashSet; use hash::Hash; -use iterator::IteratorUtil; +use iterator::Iterator; use cmp::Eq; use vec::ImmutableVector; @@ -55,7 +56,7 @@ impl ToStr for HashMap { fn to_str(&self) -> ~str { let mut acc = ~"{"; let mut first = true; - for self.iter().advance |(key, value)| { + foreach (key, value) in self.iter() { if first { first = false; } @@ -76,7 +77,7 @@ impl ToStr for HashSet { fn to_str(&self) -> ~str { let mut acc = ~"{"; let mut first = true; - for self.iter().advance |element| { + foreach element in self.iter() { if first { first = false; } @@ -125,7 +126,7 @@ impl<'self,A:ToStr> ToStr for &'self [A] { fn to_str(&self) -> ~str { let mut acc = ~"["; let mut first = true; - for self.iter().advance |elt| { + foreach elt in self.iter() { if first { first = false; } @@ -144,7 +145,7 @@ impl ToStr for ~[A] { fn to_str(&self) -> ~str { let mut acc = ~"["; let mut first = true; - for self.iter().advance |elt| { + foreach elt in self.iter() { if first { first = false; } @@ -163,7 +164,7 @@ impl ToStr for @[A] { fn to_str(&self) -> ~str { let mut acc = ~"["; let mut first = true; - for self.iter().advance |elt| { + foreach elt in self.iter() { if first { first = false; } diff --git a/src/libstd/trie.rs b/src/libstd/trie.rs index 6a0554a8c8d..704e3a500f1 100644 --- a/src/libstd/trie.rs +++ b/src/libstd/trie.rs @@ -164,7 +164,7 @@ impl> FromIterator<(uint, T), Iter> for TrieMap impl> Extendable<(uint, T), Iter> for TrieMap { fn extend(&mut self, iter: &mut Iter) { - for iter.advance |(k, v)| { + foreach (k, v) in *iter { self.insert(k, v); } } @@ -235,7 +235,7 @@ impl> FromIterator for TrieSet { impl> Extendable for TrieSet { fn extend(&mut self, iter: &mut Iter) { - for iter.advance |elem| { + foreach elem in *iter { self.insert(elem); } } @@ -283,7 +283,7 @@ impl TrieNode { } fn mutate_values<'a>(&'a mut self, f: &fn(&uint, &mut T) -> bool) -> bool { - for self.children.mut_iter().advance |child| { + foreach child in self.children.mut_iter() { match *child { Internal(ref mut x) => if !x.mutate_values(|i,t| f(i,t)) { return false @@ -379,7 +379,7 @@ pub fn check_integrity(trie: &TrieNode) { let mut sum = 0; - for trie.children.iter().advance |x| { + foreach x in trie.children.iter() { match *x { Nothing => (), Internal(ref y) => { @@ -544,7 +544,7 @@ mod test_map { let map: TrieMap = xs.iter().transform(|&x| x).collect(); - for xs.iter().advance |&(k, v)| { + foreach &(k, v) in xs.iter() { assert_eq!(map.find(&k), Some(&v)); } } @@ -553,6 +553,7 @@ mod test_map { #[cfg(test)] mod test_set { use super::*; + use prelude::*; use uint; #[test] @@ -583,7 +584,7 @@ mod test_set { let set: TrieSet = xs.iter().transform(|&x| x).collect(); - for xs.iter().advance |x| { + foreach x in xs.iter() { assert!(set.contains(x)); } } diff --git a/src/libstd/unstable/extfmt.rs b/src/libstd/unstable/extfmt.rs index 1a136bbaa37..a8cdd1fb2dc 100644 --- a/src/libstd/unstable/extfmt.rs +++ b/src/libstd/unstable/extfmt.rs @@ -77,7 +77,6 @@ debug!("hello, %s!", "world"); */ use prelude::*; -use iterator::IteratorUtil; /* * We have a 'ct' (compile-time) module that parses format strings into a @@ -616,7 +615,7 @@ pub mod rt { let headsize = match head { Some(_) => 1, _ => 0 }; let uwidth : uint = match cv.width { CountImplied => { - for head.iter().advance |&c| { + foreach &c in head.iter() { buf.push_char(c); } return buf.push_str(s); @@ -625,7 +624,7 @@ pub mod rt { }; let strlen = s.char_len() + headsize; if uwidth <= strlen { - for head.iter().advance |&c| { + foreach &c in head.iter() { buf.push_char(c); } return buf.push_str(s); @@ -633,7 +632,7 @@ pub mod rt { let mut padchar = ' '; let diff = uwidth - strlen; if have_flag(cv.flags, flag_left_justify) { - for head.iter().advance |&c| { + foreach &c in head.iter() { buf.push_char(c); } buf.push_str(s); @@ -667,7 +666,7 @@ pub mod rt { // instead. if signed && zero_padding { - for head.iter().advance |&head| { + foreach &head in head.iter() { if head == '+' || head == '-' || head == ' ' { buf.push_char(head); buf.push_str(padstr); @@ -677,7 +676,7 @@ pub mod rt { } } buf.push_str(padstr); - for head.iter().advance |&c| { + foreach &c in head.iter() { buf.push_char(c); } buf.push_str(s); diff --git a/src/libstd/unstable/sync.rs b/src/libstd/unstable/sync.rs index 4c52d897a72..1fae96e7847 100644 --- a/src/libstd/unstable/sync.rs +++ b/src/libstd/unstable/sync.rs @@ -425,7 +425,7 @@ mod tests { } }; - for futures.iter().advance |f| { f.recv() } + foreach f in futures.iter() { f.recv() } do total.with |total| { assert!(**total == num_tasks * count) diff --git a/src/libstd/vec.rs b/src/libstd/vec.rs index db57d7bac68..534dc27196c 100644 --- a/src/libstd/vec.rs +++ b/src/libstd/vec.rs @@ -295,7 +295,7 @@ pub fn append_one(lhs: ~[T], x: T) -> ~[T] { */ pub fn flat_map(v: &[T], f: &fn(t: &T) -> ~[U]) -> ~[U] { let mut result = ~[]; - for v.iter().advance |elem| { result.push_all_move(f(elem)); } + foreach elem in v.iter() { result.push_all_move(f(elem)); } result } @@ -329,7 +329,7 @@ impl<'self, T:Clone> VectorVector for &'self [~[T]] { pub fn connect_vec(&self, sep: &T) -> ~[T] { let mut r = ~[]; let mut first = true; - for self.iter().advance |inner| { + foreach inner in self.iter() { if first { first = false; } else { r.push((*sep).clone()); } r.push_all((*inner).clone()); } @@ -347,7 +347,7 @@ impl<'self,T:Clone> VectorVector for &'self [&'self [T]] { pub fn connect_vec(&self, sep: &T) -> ~[T] { let mut r = ~[]; let mut first = true; - for self.iter().advance |&inner| { + foreach &inner in self.iter() { if first { first = false; } else { r.push((*sep).clone()); } r.push_all(inner); } @@ -365,7 +365,7 @@ impl<'self,T:Clone> VectorVector for &'self [&'self [T]] { pub fn unzip_slice(v: &[(T, U)]) -> (~[T], ~[U]) { let mut ts = ~[]; let mut us = ~[]; - for v.iter().advance |p| { + foreach p in v.iter() { let (t, u) = (*p).clone(); ts.push(t); us.push(u); @@ -384,7 +384,7 @@ pub fn unzip_slice(v: &[(T, U)]) -> (~[T], ~[U]) { pub fn unzip(v: ~[(T, U)]) -> (~[T], ~[U]) { let mut ts = ~[]; let mut us = ~[]; - for v.consume_iter().advance |p| { + foreach p in v.consume_iter() { let (t, u) = p; ts.push(t); us.push(u); @@ -530,6 +530,7 @@ pub mod traits { use clone::Clone; use cmp::{Eq, Ord, TotalEq, TotalOrd, Ordering, Equal, Equiv}; use ops::Add; + use option::{Some, None}; impl<'self,T:Eq> Eq for &'self [T] { fn eq(&self, other: & &'self [T]) -> bool { @@ -588,7 +589,7 @@ pub mod traits { impl<'self,T:TotalOrd> TotalOrd for &'self [T] { fn cmp(&self, other: & &'self [T]) -> Ordering { - for self.iter().zip(other.iter()).advance |(s,o)| { + foreach (s,o) in self.iter().zip(other.iter()) { match s.cmp(o) { Equal => {}, non_eq => { return non_eq; } @@ -610,7 +611,7 @@ pub mod traits { impl<'self,T:Ord> Ord for &'self [T] { fn lt(&self, other: & &'self [T]) -> bool { - for self.iter().zip(other.iter()).advance |(s,o)| { + foreach (s,o) in self.iter().zip(other.iter()) { if *s < *o { return true; } if *s > *o { return false; } } @@ -724,7 +725,7 @@ impl<'self,T:Clone> CopyableVector for &'self [T] { #[inline] fn to_owned(&self) -> ~[T] { let mut result = with_capacity(self.len()); - for self.iter().advance |e| { + foreach e in self.iter() { result.push((*e).clone()); } result @@ -879,7 +880,7 @@ impl<'self,T> ImmutableVector<'self, T> for &'self [T] { * * ~~~ {.rust} * let v = &[1,2,3,4]; - * for v.window_iter().advance |win| { + * foreach win in v.window_iter() { * printfln!(win); * } * ~~~ @@ -908,7 +909,7 @@ impl<'self,T> ImmutableVector<'self, T> for &'self [T] { * * ~~~ {.rust} * let v = &[1,2,3,4,5]; - * for v.chunk_iter().advance |win| { + * foreach win in v.chunk_iter() { * printfln!(win); * } * ~~~ @@ -974,7 +975,7 @@ impl<'self,T> ImmutableVector<'self, T> for &'self [T] { */ #[inline] fn rposition(&self, f: &fn(t: &T) -> bool) -> Option { - for self.rev_iter().enumerate().advance |(i, t)| { + foreach (i, t) in self.rev_iter().enumerate() { if f(t) { return Some(self.len() - i - 1); } } None @@ -1074,7 +1075,7 @@ impl<'self,T:Eq> ImmutableEqVector for &'self [T] { /// Return true if a vector contains an element with the given value fn contains(&self, x: &T) -> bool { - for self.iter().advance |elt| { if *x == *elt { return true; } } + foreach elt in self.iter() { if *x == *elt { return true; } } false } } @@ -1112,7 +1113,7 @@ impl<'self,T:Clone> ImmutableCopyableVector for &'self [T] { let mut lefts = ~[]; let mut rights = ~[]; - for self.iter().advance |elt| { + foreach elt in self.iter() { if f(elt) { lefts.push((*elt).clone()); } else { @@ -1169,7 +1170,7 @@ impl OwnedVector for ~[T] { /// /// ~~~ {.rust} /// let v = ~[~"a", ~"b"]; - /// for v.consume_iter().advance |s| { + /// foreach s in v.consume_iter() { /// // s has type ~str, not &~str /// println(s); /// } @@ -1498,7 +1499,7 @@ impl OwnedVector for ~[T] { let mut lefts = ~[]; let mut rights = ~[]; - for self.consume_iter().advance |elt| { + foreach elt in self.consume_iter() { if f(&elt) { lefts.push(elt); } else { @@ -1831,7 +1832,7 @@ impl<'self,T> MutableVector<'self, T> for &'self mut [T] { #[inline] fn move_from(self, mut src: ~[T], start: uint, end: uint) -> uint { - for self.mut_iter().zip(src.mut_slice(start, end).mut_iter()).advance |(a, b)| { + foreach (a, b) in self.mut_iter().zip(src.mut_slice(start, end).mut_iter()) { util::swap(a, b); } cmp::min(self.len(), end-start) @@ -1866,7 +1867,7 @@ pub trait MutableCloneableVector { impl<'self, T:Clone> MutableCloneableVector for &'self mut [T] { #[inline] fn copy_from(self, src: &[T]) -> uint { - for self.mut_iter().zip(src.iter()).advance |(a, b)| { + foreach (a, b) in self.mut_iter().zip(src.iter()) { *a = b.clone(); } cmp::min(self.len(), src.len()) @@ -2268,7 +2269,7 @@ impl> FromIterator for ~[A] { fn from_iterator(iterator: &mut T) -> ~[A] { let (lower, _) = iterator.size_hint(); let mut xs = with_capacity(lower); - for iterator.advance |x| { + foreach x in *iterator { xs.push(x); } xs @@ -2280,7 +2281,7 @@ impl> Extendable for ~[A] { let (lower, _) = iterator.size_hint(); let len = self.len(); self.reserve(len + lower); - for iterator.advance |x| { + foreach x in *iterator { self.push(x); } } @@ -3237,7 +3238,7 @@ mod tests { fn test_mut_iterator() { use iterator::*; let mut xs = [1, 2, 3, 4, 5]; - for xs.mut_iter().advance |x| { + foreach x in xs.mut_iter() { *x += 1; } assert_eq!(xs, [2, 3, 4, 5, 6]) @@ -3250,7 +3251,7 @@ mod tests { let xs = [1, 2, 5, 10, 11]; let ys = [11, 10, 5, 2, 1]; let mut i = 0; - for xs.rev_iter().advance |&x| { + foreach &x in xs.rev_iter() { assert_eq!(x, ys[i]); i += 1; } @@ -3261,7 +3262,7 @@ mod tests { fn test_mut_rev_iterator() { use iterator::*; let mut xs = [1u, 2, 3, 4, 5]; - for xs.mut_rev_iter().enumerate().advance |(i,x)| { + foreach (i,x) in xs.mut_rev_iter().enumerate() { *x += i; } assert_eq!(xs, [5, 5, 5, 5, 5]) @@ -3501,12 +3502,12 @@ mod tests { { let (left, right) = values.mut_split(2); assert_eq!(left.slice(0, left.len()), [1, 2]); - for left.mut_iter().advance |p| { + foreach p in left.mut_iter() { *p += 1; } assert_eq!(right.slice(0, right.len()), [3, 4, 5]); - for right.mut_iter().advance |p| { + foreach p in right.mut_iter() { *p += 2; } } @@ -3523,25 +3524,25 @@ mod tests { assert_eq!(v.len(), 3); let mut cnt = 0; - for v.iter().advance |f| { + foreach f in v.iter() { assert!(*f == Foo); cnt += 1; } assert_eq!(cnt, 3); - for v.slice(1, 3).iter().advance |f| { + foreach f in v.slice(1, 3).iter() { assert!(*f == Foo); cnt += 1; } assert_eq!(cnt, 5); - for v.mut_iter().advance |f| { + foreach f in v.mut_iter() { assert!(*f == Foo); cnt += 1; } assert_eq!(cnt, 8); - for v.consume_iter().advance |f| { + foreach f in v.consume_iter() { assert!(f == Foo); cnt += 1; } @@ -3553,7 +3554,7 @@ mod tests { let xs: [Foo, ..3] = [Foo, Foo, Foo]; assert_eq!(fmt!("%?", xs.slice(0, 2).to_owned()), ~"~[{}, {}]"); cnt = 0; - for xs.iter().advance |f| { + foreach f in xs.iter() { assert!(*f == Foo); cnt += 1; } diff --git a/src/libsyntax/abi.rs b/src/libsyntax/abi.rs index bf0dee0822f..e086334eb48 100644 --- a/src/libsyntax/abi.rs +++ b/src/libsyntax/abi.rs @@ -209,9 +209,9 @@ impl AbiSet { let mut abis = ~[]; for self.each |abi| { abis.push(abi); } - for abis.iter().enumerate().advance |(i, abi)| { + foreach (i, abi) in abis.iter().enumerate() { let data = abi.data(); - for abis.slice(0, i).iter().advance |other_abi| { + foreach other_abi in abis.slice(0, i).iter() { let other_data = other_abi.data(); debug!("abis=(%?,%?) datas=(%?,%?)", abi, data.abi_arch, @@ -372,7 +372,7 @@ fn abi_to_str_rust() { #[test] fn indices_are_correct() { - for AbiDatas.iter().enumerate().advance |(i, abi_data)| { + foreach (i, abi_data) in AbiDatas.iter().enumerate() { assert!(i == abi_data.abi.index()); } @@ -387,7 +387,7 @@ fn indices_are_correct() { #[cfg(test)] fn check_arch(abis: &[Abi], arch: Architecture, expect: Option) { let mut set = AbiSet::empty(); - for abis.iter().advance |&abi| { + foreach &abi in abis.iter() { set.add(abi); } let r = set.for_arch(arch); diff --git a/src/libsyntax/ast_map.rs b/src/libsyntax/ast_map.rs index 7e70817a68e..bee0f113aa7 100644 --- a/src/libsyntax/ast_map.rs +++ b/src/libsyntax/ast_map.rs @@ -163,7 +163,7 @@ pub fn map_fn( (cx,v): (@mut Ctx, visit::vt<@mut Ctx>) ) { - for decl.inputs.iter().advance |a| { + foreach a in decl.inputs.iter() { cx.map.insert(a.id, node_arg); } visit::visit_fn(fk, decl, body, sp, id, (cx, v)); @@ -201,12 +201,12 @@ pub fn map_item(i: @item, (cx, v): (@mut Ctx, visit::vt<@mut Ctx>)) { match i.node { item_impl(_, _, _, ref ms) => { let impl_did = ast_util::local_def(i.id); - for ms.iter().advance |m| { + foreach m in ms.iter() { map_method(impl_did, extend(cx, i.ident), *m, false, cx); } } item_enum(ref enum_definition, _) => { - for (*enum_definition).variants.iter().advance |v| { + foreach v in (*enum_definition).variants.iter() { cx.map.insert(v.node.id, node_variant( /* FIXME (#2543) */ (*v).clone(), i, @@ -214,7 +214,7 @@ pub fn map_item(i: @item, (cx, v): (@mut Ctx, visit::vt<@mut Ctx>)) { } } item_foreign_mod(ref nm) => { - for nm.items.iter().advance |nitem| { + foreach nitem in nm.items.iter() { // Compute the visibility for this native item. let visibility = match nitem.vis { public => public, @@ -248,10 +248,10 @@ pub fn map_item(i: @item, (cx, v): (@mut Ctx, visit::vt<@mut Ctx>)) { ); } item_trait(_, ref traits, ref methods) => { - for traits.iter().advance |p| { + foreach p in traits.iter() { cx.map.insert(p.ref_id, node_item(i, item_path)); } - for methods.iter().advance |tm| { + foreach tm in methods.iter() { let id = ast_util::trait_method_to_ty_method(tm).id; let d_id = ast_util::local_def(i.id); cx.map.insert( @@ -301,7 +301,7 @@ pub fn map_expr(ex: @expr, (cx,v): (@mut Ctx, visit::vt<@mut Ctx>)) { // Expressions which are or might be calls: { let r = ex.get_callee_id(); - for r.iter().advance |callee_id| { + foreach callee_id in r.iter() { cx.map.insert(*callee_id, node_callee_scope(ex)); } } diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index 5ad325fed56..b8a2ea1b57d 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -278,7 +278,7 @@ pub fn split_trait_methods(trait_methods: &[trait_method]) -> (~[TypeMethod], ~[@method]) { let mut reqd = ~[]; let mut provd = ~[]; - for trait_methods.iter().advance |trt_method| { + foreach trt_method in trait_methods.iter() { match *trt_method { required(ref tm) => reqd.push((*tm).clone()), provided(m) => provd.push(m) @@ -391,10 +391,10 @@ impl id_range { pub fn id_visitor(vfn: @fn(NodeId, T)) -> visit::vt { let visit_generics: @fn(&Generics, T) = |generics, t| { - for generics.ty_params.iter().advance |p| { + foreach p in generics.ty_params.iter() { vfn(p.id, t.clone()); } - for generics.lifetimes.iter().advance |p| { + foreach p in generics.lifetimes.iter() { vfn(p.id, t.clone()); } }; @@ -408,13 +408,13 @@ pub fn id_visitor(vfn: @fn(NodeId, T)) -> visit::vt { match vi.node { view_item_extern_mod(_, _, id) => vfn(id, t.clone()), view_item_use(ref vps) => { - for vps.iter().advance |vp| { + foreach vp in vps.iter() { match vp.node { view_path_simple(_, _, id) => vfn(id, t.clone()), view_path_glob(_, id) => vfn(id, t.clone()), view_path_list(_, ref paths, id) => { vfn(id, t.clone()); - for paths.iter().advance |p| { + foreach p in paths.iter() { vfn(p.node.id, t.clone()); } } @@ -434,7 +434,7 @@ pub fn id_visitor(vfn: @fn(NodeId, T)) -> visit::vt { vfn(i.id, t.clone()); match i.node { item_enum(ref enum_definition, _) => - for (*enum_definition).variants.iter().advance |v| { + foreach v in (*enum_definition).variants.iter() { vfn(v.node.id, t.clone()); }, _ => () @@ -462,7 +462,7 @@ pub fn id_visitor(vfn: @fn(NodeId, T)) -> visit::vt { visit_expr: |e, (t, vt)| { { let r = e.get_callee_id(); - for r.iter().advance |callee_id| { + foreach callee_id in r.iter() { vfn(*callee_id, t.clone()); } } @@ -500,7 +500,7 @@ pub fn id_visitor(vfn: @fn(NodeId, T)) -> visit::vt { } } - for d.inputs.iter().advance |arg| { + foreach arg in d.inputs.iter() { vfn(arg.id, t.clone()) } visit::visit_fn(fk, d, a, b, id, (t.clone(), vt)); diff --git a/src/libsyntax/attr.rs b/src/libsyntax/attr.rs index 3c560d211fd..615b47e5681 100644 --- a/src/libsyntax/attr.rs +++ b/src/libsyntax/attr.rs @@ -228,7 +228,7 @@ pub fn sort_meta_items(items: &[@MetaItem]) -> ~[@MetaItem] { */ pub fn find_linkage_metas(attrs: &[Attribute]) -> ~[@MetaItem] { let mut result = ~[]; - for attrs.iter().filter(|at| "link" == at.name()).advance |attr| { + foreach attr in attrs.iter().filter(|at| "link" == at.name()) { match attr.meta().node { MetaList(_, ref items) => result.push_all(*items), _ => () @@ -316,7 +316,7 @@ pub fn test_cfg> pub fn require_unique_names(diagnostic: @span_handler, metas: &[@MetaItem]) { let mut set = HashSet::new(); - for metas.iter().advance |meta| { + foreach meta in metas.iter() { let name = meta.name(); // FIXME: How do I silence the warnings? --pcw (#2619) diff --git a/src/libsyntax/codemap.rs b/src/libsyntax/codemap.rs index a9499881cff..d89057890f1 100644 --- a/src/libsyntax/codemap.rs +++ b/src/libsyntax/codemap.rs @@ -379,7 +379,7 @@ impl CodeMap { } pub fn get_filemap(&self, filename: &str) -> @FileMap { - for self.files.iter().advance |fm| { if filename == fm.name { return *fm; } } + foreach fm in self.files.iter() { if filename == fm.name { return *fm; } } //XXjdm the following triggers a mismatched type bug // (or expected function, found _|_) fail!(); // ("asking for " + filename + " which we don't know about"); @@ -465,7 +465,7 @@ impl CodeMap { // The number of extra bytes due to multibyte chars in the FileMap let mut total_extra_bytes = 0; - for map.multibyte_chars.iter().advance |mbc| { + foreach mbc in map.multibyte_chars.iter() { debug!("codemap: %?-byte char at %?", mbc.bytes, mbc.pos); if mbc.pos < bpos { total_extra_bytes += mbc.bytes; diff --git a/src/libsyntax/diagnostic.rs b/src/libsyntax/diagnostic.rs index 8be55ac0dc7..4c7c9c0c325 100644 --- a/src/libsyntax/diagnostic.rs +++ b/src/libsyntax/diagnostic.rs @@ -268,7 +268,7 @@ fn highlight_lines(cm: @codemap::CodeMap, elided = true; } // Print the offending lines - for display_lines.iter().advance |line| { + foreach line in display_lines.iter() { io::stderr().write_str(fmt!("%s:%u ", fm.name, *line + 1u)); let s = fm.get_line(*line as int) + "\n"; io::stderr().write_str(s); @@ -332,7 +332,7 @@ fn highlight_lines(cm: @codemap::CodeMap, } fn print_macro_backtrace(cm: @codemap::CodeMap, sp: span) { - for sp.expn_info.iter().advance |ei| { + foreach ei in sp.expn_info.iter() { let ss = ei.callee.span.map_default(~"", |span| cm.span_to_str(*span)); print_diagnostic(ss, note, fmt!("in expansion of %s!", ei.callee.name)); diff --git a/src/libsyntax/ext/bytes.rs b/src/libsyntax/ext/bytes.rs index e1face8a9b3..9b2b37fe402 100644 --- a/src/libsyntax/ext/bytes.rs +++ b/src/libsyntax/ext/bytes.rs @@ -21,13 +21,13 @@ pub fn expand_syntax_ext(cx: @ExtCtxt, sp: span, tts: &[ast::token_tree]) -> bas let exprs = get_exprs_from_tts(cx, sp, tts); let mut bytes = ~[]; - for exprs.iter().advance |expr| { + foreach expr in exprs.iter() { match expr.node { // expression is a literal ast::expr_lit(lit) => match lit.node { // string literal, push each byte to vector expression ast::lit_str(s) => { - for s.byte_iter().advance |byte| { + foreach byte in s.byte_iter() { bytes.push(cx.expr_u8(sp, byte)); } } diff --git a/src/libsyntax/ext/concat_idents.rs b/src/libsyntax/ext/concat_idents.rs index 900668df117..e47e3078636 100644 --- a/src/libsyntax/ext/concat_idents.rs +++ b/src/libsyntax/ext/concat_idents.rs @@ -18,7 +18,7 @@ use parse::token::{str_to_ident}; pub fn expand_syntax_ext(cx: @ExtCtxt, sp: span, tts: &[ast::token_tree]) -> base::MacResult { let mut res_str = ~""; - for tts.iter().enumerate().advance |(i, e)| { + foreach (i, e) in tts.iter().enumerate() { if i & 1 == 1 { match *e { ast::tt_tok(_, token::COMMA) => (), diff --git a/src/libsyntax/ext/deriving/decodable.rs b/src/libsyntax/ext/deriving/decodable.rs index bde0a345b10..30dd89b02f1 100644 --- a/src/libsyntax/ext/deriving/decodable.rs +++ b/src/libsyntax/ext/deriving/decodable.rs @@ -110,7 +110,7 @@ fn decodable_substructure(cx: @ExtCtxt, span: span, let mut variants = ~[]; let rvariant_arg = cx.ident_of("read_enum_variant_arg"); - for fields.iter().enumerate().advance |(i, f)| { + foreach (i, f) in fields.iter().enumerate() { let (name, parts) = match *f { (i, ref p) => (i, p) }; variants.push(cx.expr_str(span, cx.str_of(name))); diff --git a/src/libsyntax/ext/deriving/encodable.rs b/src/libsyntax/ext/deriving/encodable.rs index 1f969b4e078..eb425ec029a 100644 --- a/src/libsyntax/ext/deriving/encodable.rs +++ b/src/libsyntax/ext/deriving/encodable.rs @@ -122,7 +122,7 @@ fn encodable_substructure(cx: @ExtCtxt, span: span, Struct(ref fields) => { let emit_struct_field = cx.ident_of("emit_struct_field"); let mut stmts = ~[]; - for fields.iter().enumerate().advance |(i, f)| { + foreach (i, f) in fields.iter().enumerate() { let (name, val) = match *f { (Some(id), e, _) => (cx.str_of(id), e), (None, e, _) => (fmt!("_field%u", i).to_managed(), e) @@ -153,7 +153,7 @@ fn encodable_substructure(cx: @ExtCtxt, span: span, let encoder = cx.expr_ident(span, blkarg); let emit_variant_arg = cx.ident_of("emit_enum_variant_arg"); let mut stmts = ~[]; - for fields.iter().enumerate().advance |(i, f)| { + foreach (i, f) in fields.iter().enumerate() { let val = match *f { (_, e, _) => e }; let enc = cx.expr_method_call(span, val, encode, ~[blkencoder]); let lambda = cx.lambda_expr_1(span, enc, blkarg); diff --git a/src/libsyntax/ext/deriving/generic.rs b/src/libsyntax/ext/deriving/generic.rs index 04bbe5ae1d6..cb74f152c1e 100644 --- a/src/libsyntax/ext/deriving/generic.rs +++ b/src/libsyntax/ext/deriving/generic.rs @@ -284,7 +284,7 @@ impl<'self> TraitDef<'self> { _mitem: @ast::MetaItem, in_items: ~[@ast::item]) -> ~[@ast::item] { let mut result = ~[]; - for in_items.iter().advance |item| { + foreach item in in_items.iter() { result.push(*item); match item.node { ast::item_struct(struct_def, ref generics) => { @@ -322,11 +322,11 @@ impl<'self> TraitDef<'self> { let mut trait_generics = self.generics.to_generics(cx, span, type_ident, generics); // Copy the lifetimes - for generics.lifetimes.iter().advance |l| { + foreach l in generics.lifetimes.iter() { trait_generics.lifetimes.push(*l) }; // Create the type parameters. - for generics.ty_params.iter().advance |ty_param| { + foreach ty_param in generics.ty_params.iter() { // I don't think this can be moved out of the loop, since // a TyParamBound requires an ast id let mut bounds = opt_vec::from( @@ -486,7 +486,7 @@ impl<'self> MethodDef<'self> { None => respan(span, ast::sty_static), }; - for self.args.iter().enumerate().advance |(i, ty)| { + foreach (i, ty) in self.args.iter().enumerate() { let ast_ty = ty.to_ty(cx, span, type_ident, generics); let ident = cx.ident_of(fmt!("__arg_%u", i)); arg_tys.push((ident, ast_ty)); @@ -615,7 +615,7 @@ impl<'self> MethodDef<'self> { // make a series of nested matches, to destructure the // structs. This is actually right-to-left, but it shoudn't // matter. - for self_args.iter().zip(patterns.iter()).advance |(&arg_expr, &pat)| { + foreach (&arg_expr, &pat) in self_args.iter().zip(patterns.iter()) { body = cx.expr_match(span, arg_expr, ~[ cx.arm(span, ~[pat], body) ]) } @@ -739,10 +739,10 @@ impl<'self> MethodDef<'self> { let mut enum_matching_fields = vec::from_elem(self_vec.len(), ~[]); - for matches_so_far.tail().iter().advance |triple| { + foreach triple in matches_so_far.tail().iter() { match triple { &(_, _, ref other_fields) => { - for other_fields.iter().enumerate().advance |(i, pair)| { + foreach (i, pair) in other_fields.iter().enumerate() { enum_matching_fields[i].push(pair.second()); } } @@ -815,7 +815,7 @@ impl<'self> MethodDef<'self> { } } else { // create an arm matching on each variant - for enum_def.variants.iter().enumerate().advance |(index, variant)| { + foreach (index, variant) in enum_def.variants.iter().enumerate() { let (pattern, idents) = create_enum_variant_pattern(cx, span, variant, current_match_str, @@ -878,7 +878,7 @@ fn summarise_struct(cx: @ExtCtxt, span: span, struct_def: &struct_def) -> Either { let mut named_idents = ~[]; let mut unnamed_count = 0; - for struct_def.fields.iter().advance |field| { + foreach field in struct_def.fields.iter() { match field.node.kind { ast::named_field(ident, _) => named_idents.push(ident), ast::unnamed_field => unnamed_count += 1, @@ -932,7 +932,7 @@ fn create_struct_pattern(cx: @ExtCtxt, let mut ident_expr = ~[]; let mut struct_type = Unknown; - for struct_def.fields.iter().enumerate().advance |(i, struct_field)| { + foreach (i, struct_field) in struct_def.fields.iter().enumerate() { let opt_id = match struct_field.node.kind { ast::named_field(ident, _) if (struct_type == Unknown || struct_type == Record) => { @@ -960,7 +960,7 @@ fn create_struct_pattern(cx: @ExtCtxt, // must be nonempty to reach here let pattern = if struct_type == Record { let field_pats = do vec::build |push| { - for subpats.iter().zip(ident_expr.iter()).advance |(&pat, &(id, _))| { + foreach (&pat, &(id, _)) in subpats.iter().zip(ident_expr.iter()) { // id is guaranteed to be Some push(ast::field_pat { ident: id.get(), pat: pat }) } diff --git a/src/libsyntax/ext/deriving/iter_bytes.rs b/src/libsyntax/ext/deriving/iter_bytes.rs index 57a4f0899b5..215d5ca837d 100644 --- a/src/libsyntax/ext/deriving/iter_bytes.rs +++ b/src/libsyntax/ext/deriving/iter_bytes.rs @@ -81,7 +81,7 @@ fn iter_bytes_substructure(cx: @ExtCtxt, span: span, substr: &Substructure) -> @ _ => cx.span_bug(span, "Impossible substructure in `deriving(IterBytes)`") } - for fields.iter().advance |&(_, field, _)| { + foreach &(_, field, _) in fields.iter() { exprs.push(call_iterbytes(field)); } diff --git a/src/libsyntax/ext/deriving/to_str.rs b/src/libsyntax/ext/deriving/to_str.rs index 9b544eb0796..5a1a847fbc0 100644 --- a/src/libsyntax/ext/deriving/to_str.rs +++ b/src/libsyntax/ext/deriving/to_str.rs @@ -64,7 +64,7 @@ fn to_str_substructure(cx: @ExtCtxt, span: span, stmts.push(cx.stmt_expr(call)); }; - for fields.iter().enumerate().advance |(i, &(name, e, _))| { + foreach (i, &(name, e, _)) in fields.iter().enumerate() { if i > 0 { push(cx.expr_str(span, @", ")); } diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 4855911b9a8..dc096a145cc 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -535,7 +535,7 @@ pub fn new_name_finder() -> @Visitor<@mut ~[ast::ident]> { _ => () } // visit optional subpattern of pat_ident: - for inner.iter().advance |subpat: &@ast::pat| { + foreach subpat in inner.iter() { (v.visit_pat)(*subpat, (ident_accum, v)) } } diff --git a/src/libsyntax/ext/fmt.rs b/src/libsyntax/ext/fmt.rs index 855cf47111a..d8d114d1338 100644 --- a/src/libsyntax/ext/fmt.rs +++ b/src/libsyntax/ext/fmt.rs @@ -67,7 +67,7 @@ fn pieces_to_expr(cx: @ExtCtxt, sp: span, fn make_rt_conv_expr(cx: @ExtCtxt, sp: span, cnv: &Conv) -> @ast::expr { fn make_flags(cx: @ExtCtxt, sp: span, flags: &[Flag]) -> @ast::expr { let mut tmp_expr = make_rt_path_expr(cx, sp, "flag_none"); - for flags.iter().advance |f| { + foreach f in flags.iter() { let fstr = match *f { FlagLeftJustify => "flag_left_justify", FlagLeftZeroPad => "flag_left_zero_pad", @@ -153,7 +153,7 @@ fn pieces_to_expr(cx: @ExtCtxt, sp: span, option::None => (), _ => cx.span_unimpl(sp, unsupported) } - for cnv.flags.iter().advance |f| { + foreach f in cnv.flags.iter() { match *f { FlagLeftJustify => (), FlagSignAlways => { @@ -203,7 +203,7 @@ fn pieces_to_expr(cx: @ExtCtxt, sp: span, Some(p) => { debug!("param: %s", p.to_str()); } _ => debug!("param: none") } - for c.flags.iter().advance |f| { + foreach f in c.flags.iter() { match *f { FlagLeftJustify => debug!("flag: left justify"), FlagLeftZeroPad => debug!("flag: left zero pad"), @@ -269,7 +269,7 @@ fn pieces_to_expr(cx: @ExtCtxt, sp: span, corresponding function in std::unstable::extfmt. Each function takes a buffer to insert data into along with the data being formatted. */ let npieces = pieces.len(); - for pieces.consume_iter().enumerate().advance |(i, pc)| { + foreach (i, pc) in pieces.consume_iter().enumerate() { match pc { /* Raw strings get appended via str::push_str */ PieceString(s) => { diff --git a/src/libsyntax/ext/pipes/liveness.rs b/src/libsyntax/ext/pipes/liveness.rs index 6a8f3c89a2f..b080a730f3e 100644 --- a/src/libsyntax/ext/pipes/liveness.rs +++ b/src/libsyntax/ext/pipes/liveness.rs @@ -59,7 +59,7 @@ pub fn analyze(proto: @mut protocol_, _cx: @ExtCtxt) { changed = false; debug!("colive iteration %?", i); let mut new_colive = ~[]; - for colive.iter().enumerate().advance |(i, this_colive)| { + foreach (i, this_colive) in colive.iter().enumerate() { let mut result = this_colive.clone(); let this = proto.get_state_by_id(i); for this_colive.ones |j| { @@ -78,7 +78,7 @@ pub fn analyze(proto: @mut protocol_, _cx: @ExtCtxt) { // Determine if we're bounded let mut self_live = ~[]; - for colive.iter().enumerate().advance |(i, bv)| { + foreach (i, bv) in colive.iter().enumerate() { if bv.get(i) { self_live.push(proto.get_state_by_id(i)) } diff --git a/src/libsyntax/ext/pipes/pipec.rs b/src/libsyntax/ext/pipes/pipec.rs index b046c99d144..02aef13a3a8 100644 --- a/src/libsyntax/ext/pipes/pipec.rs +++ b/src/libsyntax/ext/pipes/pipec.rs @@ -210,7 +210,7 @@ impl to_type_decls for state { let mut items_msg = ~[]; - for self.messages.iter().advance |m| { + foreach m in self.messages.iter() { let message(name, span, tys, this, next) = (*m).clone(); let tys = match next { @@ -257,7 +257,7 @@ impl to_type_decls for state { let mut items = ~[]; { - for self.messages.mut_iter().advance |m| { + foreach m in self.messages.mut_iter() { if dir == send { items.push(m.gen_send(cx, true)); items.push(m.gen_send(cx, false)); @@ -373,8 +373,8 @@ impl gen_init for protocol { fn buffer_ty_path(&self, cx: @ExtCtxt) -> ast::Ty { let mut params: OptVec = opt_vec::Empty; - for self.states.iter().advance |s| { - for s.generics.ty_params.iter().advance |tp| { + foreach s in self.states.iter() { + foreach tp in s.generics.ty_params.iter() { match params.iter().find_(|tpp| tp.ident == tpp.ident) { None => params.push((*tp).clone()), _ => () @@ -392,7 +392,7 @@ impl gen_init for protocol { let ext_cx = cx; let mut params: OptVec = opt_vec::Empty; let fields = do self.states.iter().transform |s| { - for s.generics.ty_params.iter().advance |tp| { + foreach tp in s.generics.ty_params.iter() { match params.iter().find_(|tpp| tp.ident == tpp.ident) { None => params.push((*tp).clone()), _ => () @@ -434,7 +434,7 @@ impl gen_init for protocol { let mut client_states = ~[]; let mut server_states = ~[]; - for self.states.iter().advance |s| { + foreach s in self.states.iter() { items.push_all_move(s.to_type_decls(cx)); client_states.push_all_move(s.to_endpoint_decls(cx, send)); diff --git a/src/libsyntax/ext/pipes/proto.rs b/src/libsyntax/ext/pipes/proto.rs index c93b89daa40..5d2ebb68b8a 100644 --- a/src/libsyntax/ext/pipes/proto.rs +++ b/src/libsyntax/ext/pipes/proto.rs @@ -107,7 +107,7 @@ impl state_ { /// Iterate over the states that can be reached in one message /// from this state. pub fn reachable(&self, f: &fn(state) -> bool) -> bool { - for self.messages.iter().advance |m| { + foreach m in self.messages.iter() { match *m { message(_, _, _, _, Some(next_state { state: ref id, _ })) => { let state = self.proto.get_state((*id)); @@ -166,7 +166,7 @@ impl protocol_ { } pub fn has_ty_params(&self) -> bool { - for self.states.iter().advance |s| { + foreach s in self.states.iter() { if s.generics.ty_params.len() > 0 { return true; } diff --git a/src/libsyntax/ext/quote.rs b/src/libsyntax/ext/quote.rs index 1439f4cabab..bcfd898dc6f 100644 --- a/src/libsyntax/ext/quote.rs +++ b/src/libsyntax/ext/quote.rs @@ -632,7 +632,7 @@ fn mk_tt(cx: @ExtCtxt, sp: span, tt: &ast::token_tree) fn mk_tts(cx: @ExtCtxt, sp: span, tts: &[ast::token_tree]) -> ~[@ast::stmt] { let mut ss = ~[]; - for tts.iter().advance |tt| { + foreach tt in tts.iter() { ss.push_all_move(mk_tt(cx, sp, tt)); } ss diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs index 9d9155ff0d5..66965f00215 100644 --- a/src/libsyntax/ext/tt/macro_parser.rs +++ b/src/libsyntax/ext/tt/macro_parser.rs @@ -138,7 +138,7 @@ pub fn count_names(ms: &[matcher]) -> uint { pub fn initial_matcher_pos(ms: ~[matcher], sep: Option, lo: BytePos) -> ~MatcherPos { let mut match_idx_hi = 0u; - for ms.iter().advance |elt| { + foreach elt in ms.iter() { match elt.node { match_tok(_) => (), match_seq(_,_,_,_,hi) => { @@ -195,7 +195,7 @@ pub fn nameize(p_s: @mut ParseSess, ms: &[matcher], res: &[@named_match]) match *m { codemap::spanned {node: match_tok(_), _} => (), codemap::spanned {node: match_seq(ref more_ms, _, _, _, _), _} => { - for more_ms.iter().advance |next_m| { + foreach next_m in more_ms.iter() { n_rec(p_s, next_m, res, ret_val) }; } @@ -211,7 +211,7 @@ pub fn nameize(p_s: @mut ParseSess, ms: &[matcher], res: &[@named_match]) } } let mut ret_val = HashMap::new(); - for ms.iter().advance |m| { n_rec(p_s, m, res, &mut ret_val) } + foreach m in ms.iter() { n_rec(p_s, m, res, &mut ret_val) } ret_val } @@ -356,7 +356,7 @@ pub fn parse( if tok == EOF { if eof_eis.len() == 1u { let mut v = ~[]; - for eof_eis[0u].matches.mut_iter().advance |dv| { + foreach dv in eof_eis[0u].matches.mut_iter() { v.push(dv.pop()); } return success(nameize(sess, ms, v)); diff --git a/src/libsyntax/ext/tt/macro_rules.rs b/src/libsyntax/ext/tt/macro_rules.rs index 4b3c8498380..304cf4756e1 100644 --- a/src/libsyntax/ext/tt/macro_rules.rs +++ b/src/libsyntax/ext/tt/macro_rules.rs @@ -93,7 +93,7 @@ pub fn add_new_extension(cx: @ExtCtxt, let s_d = cx.parse_sess().span_diagnostic; - for lhses.iter().enumerate().advance |(i, lhs)| { // try each arm's matchers + foreach (i, lhs) in lhses.iter().enumerate() { // try each arm's matchers match *lhs { @matched_nonterminal(nt_matchers(ref mtcs)) => { // `none` is because we're not interpolating diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs index e3ca36ac12d..f0b00f5681c 100644 --- a/src/libsyntax/fold.rs +++ b/src/libsyntax/fold.rs @@ -380,7 +380,7 @@ fn noop_fold_method(m: @method, fld: @ast_fold) -> @method { pub fn noop_fold_block(b: &Block, fld: @ast_fold) -> Block { let view_items = b.view_items.map(|x| fld.fold_view_item(x)); let mut stmts = ~[]; - for b.stmts.iter().advance |stmt| { + foreach stmt in b.stmts.iter() { match fld.fold_stmt(*stmt) { None => {} Some(stmt) => stmts.push(stmt) diff --git a/src/libsyntax/parse/comments.rs b/src/libsyntax/parse/comments.rs index 6daeb1b3e1e..c5454a2ca95 100644 --- a/src/libsyntax/parse/comments.rs +++ b/src/libsyntax/parse/comments.rs @@ -73,8 +73,8 @@ pub fn strip_doc_comment_decoration(comment: &str) -> ~str { let mut i = uint::max_value; let mut can_trim = true; let mut first = true; - for lines.iter().advance |line| { - for line.iter().enumerate().advance |(j, c)| { + foreach line in lines.iter() { + foreach (j, c) in line.iter().enumerate() { if j > i || !"* \t".contains_char(c) { can_trim = false; break; diff --git a/src/libsyntax/parse/lexer.rs b/src/libsyntax/parse/lexer.rs index 1614a303d95..3259d49fcd1 100644 --- a/src/libsyntax/parse/lexer.rs +++ b/src/libsyntax/parse/lexer.rs @@ -837,7 +837,7 @@ mod test { // check that the given reader produces the desired stream // of tokens (stop checking after exhausting the expected vec) fn check_tokenization (env: Env, expected: ~[token::Token]) { - for expected.iter().advance |expected_tok| { + foreach expected_tok in expected.iter() { let TokenAndSpan {tok:actual_tok, sp: _} = env.string_reader.next_token(); assert_eq!(&actual_tok,expected_tok); diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 9444c463686..1d61c5be83d 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -3150,7 +3150,7 @@ impl Parser { } = self.parse_items_and_view_items(first_item_attrs, false, false); - for items.iter().advance |item| { + foreach item in items.iter() { let decl = @spanned(item.span.lo, item.span.hi, decl_item(*item)); stmts.push(@spanned(item.span.lo, item.span.hi, stmt_decl(decl, self.get_id()))); @@ -3755,7 +3755,7 @@ impl Parser { fields = ~[]; while *self.token != token::RBRACE { let r = self.parse_struct_decl_field(); - for r.iter().advance |struct_field| { + foreach struct_field in r.iter() { fields.push(*struct_field) } } @@ -4038,7 +4038,7 @@ impl Parser { Some(i) => { let stack = &self.sess.included_mod_stack; let mut err = ~"circular modules: "; - for stack.slice(i, stack.len()).iter().advance |p| { + foreach p in stack.slice(i, stack.len()).iter() { err.push_str(p.to_str()); err.push_str(" -> "); } @@ -4246,7 +4246,7 @@ impl Parser { let mut fields: ~[@struct_field] = ~[]; while *self.token != token::RBRACE { let r = self.parse_struct_decl_field(); - for r.iter().advance |struct_field| { + foreach struct_field in r.iter() { fields.push(*struct_field); } } @@ -4286,7 +4286,7 @@ impl Parser { seq_sep_trailing_disallowed(token::COMMA), |p| p.parse_ty(false) ); - for arg_tys.consume_iter().advance |ty| { + foreach ty in arg_tys.consume_iter() { args.push(ast::variant_arg { ty: ty, id: self.get_id(), @@ -4395,7 +4395,7 @@ impl Parser { self.bump(); let the_string = ident_to_str(&s); let mut abis = AbiSet::empty(); - for the_string.word_iter().advance |word| { + foreach word in the_string.word_iter() { match abi::lookup(word) { Some(abi) => { if abis.contains(abi) { diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 3365222036c..706357320a5 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -687,7 +687,6 @@ pub fn is_reserved_keyword(tok: &Token) -> bool { #[cfg(test)] mod test { use super::*; - use std::io; #[test] fn t1() { let a = fresh_name("ghi"); printfln!("interned name: %u,\ntextual name: %s\n", diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 7e0e63a29ac..a4666847f8c 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -321,7 +321,7 @@ pub fn synth_comment(s: @ps, text: ~str) { pub fn commasep(s: @ps, b: breaks, elts: &[T], op: &fn(@ps, &T)) { box(s, 0u, b); let mut first = true; - for elts.iter().advance |elt| { + foreach elt in elts.iter() { if first { first = false; } else { word_space(s, ","); } op(s, elt); } @@ -334,7 +334,7 @@ pub fn commasep_cmnt(s: @ps, b: breaks, elts: &[T], op: &fn(@ps, &T), box(s, 0u, b); let len = elts.len(); let mut i = 0u; - for elts.iter().advance |elt| { + foreach elt in elts.iter() { maybe_print_comment(s, get_span(elt).hi); op(s, elt); i += 1u; @@ -354,23 +354,23 @@ pub fn commasep_exprs(s: @ps, b: breaks, exprs: &[@ast::expr]) { pub fn print_mod(s: @ps, _mod: &ast::_mod, attrs: &[ast::Attribute]) { print_inner_attributes(s, attrs); - for _mod.view_items.iter().advance |vitem| { + foreach vitem in _mod.view_items.iter() { print_view_item(s, vitem); } - for _mod.items.iter().advance |item| { print_item(s, *item); } + foreach item in _mod.items.iter() { print_item(s, *item); } } pub fn print_foreign_mod(s: @ps, nmod: &ast::foreign_mod, attrs: &[ast::Attribute]) { print_inner_attributes(s, attrs); - for nmod.view_items.iter().advance |vitem| { + foreach vitem in nmod.view_items.iter() { print_view_item(s, vitem); } - for nmod.items.iter().advance |item| { print_foreign_item(s, *item); } + foreach item in nmod.items.iter() { print_foreign_item(s, *item); } } pub fn print_opt_lifetime(s: @ps, lifetime: &Option) { - for lifetime.iter().advance |l| { + foreach l in lifetime.iter() { print_lifetime(s, l); nbsp(s); } @@ -590,7 +590,7 @@ pub fn print_item(s: @ps, item: &ast::item) { word(s.s, ";"); } else { bopen(s); - for methods.iter().advance |meth| { + foreach meth in methods.iter() { print_method(s, *meth); } bclose(s, item.span); @@ -602,7 +602,7 @@ pub fn print_item(s: @ps, item: &ast::item) { print_generics(s, generics); if traits.len() != 0u { word(s.s, ":"); - for traits.iter().enumerate().advance |(i, trait_)| { + foreach (i, trait_) in traits.iter().enumerate() { nbsp(s); if i != 0 { word_space(s, "+"); @@ -612,7 +612,7 @@ pub fn print_item(s: @ps, item: &ast::item) { } word(s.s, " "); bopen(s); - for methods.iter().advance |meth| { + foreach meth in methods.iter() { print_trait_method(s, meth); } bclose(s, item.span); @@ -651,7 +651,7 @@ pub fn print_variants(s: @ps, variants: &[ast::variant], span: codemap::span) { bopen(s); - for variants.iter().advance |v| { + foreach v in variants.iter() { space_if_not_bol(s); maybe_print_comment(s, v.span.lo); print_outer_attributes(s, v.node.attrs); @@ -716,7 +716,7 @@ pub fn print_struct(s: @ps, bopen(s); hardbreak_if_not_bol(s); - for struct_def.fields.iter().advance |field| { + foreach field in struct_def.fields.iter() { match field.node.kind { ast::unnamed_field => fail!("unexpected unnamed field"), ast::named_field(ident, visibility) => { @@ -751,7 +751,7 @@ pub fn print_tt(s: @ps, tt: &ast::token_tree) { } ast::tt_seq(_, ref tts, ref sep, zerok) => { word(s.s, "$("); - for (*tts).iter().advance |tt_elt| { print_tt(s, tt_elt); } + foreach tt_elt in (*tts).iter() { print_tt(s, tt_elt); } word(s.s, ")"); match (*sep) { Some(ref tk) => word(s.s, parse::token::to_str(s.intr, tk)), @@ -768,7 +768,7 @@ pub fn print_tt(s: @ps, tt: &ast::token_tree) { pub fn print_tts(s: @ps, tts: & &[ast::token_tree]) { ibox(s, 0); - for tts.iter().enumerate().advance |(i, tt)| { + foreach (i, tt) in tts.iter().enumerate() { if i != 0 { space(s.s); } @@ -845,7 +845,7 @@ pub fn print_method(s: @ps, meth: &ast::method) { pub fn print_outer_attributes(s: @ps, attrs: &[ast::Attribute]) { let mut count = 0; - for attrs.iter().advance |attr| { + foreach attr in attrs.iter() { match attr.node.style { ast::AttrOuter => { print_attribute(s, attr); count += 1; } _ => {/* fallthrough */ } @@ -856,7 +856,7 @@ pub fn print_outer_attributes(s: @ps, attrs: &[ast::Attribute]) { pub fn print_inner_attributes(s: @ps, attrs: &[ast::Attribute]) { let mut count = 0; - for attrs.iter().advance |attr| { + foreach attr in attrs.iter() { match attr.node.style { ast::AttrInner => { print_attribute(s, attr); @@ -961,8 +961,8 @@ pub fn print_possibly_embedded_block_(s: @ps, print_inner_attributes(s, attrs); - for blk.view_items.iter().advance |vi| { print_view_item(s, vi); } - for blk.stmts.iter().advance |st| { + foreach vi in blk.view_items.iter() { print_view_item(s, vi); } + foreach st in blk.stmts.iter() { print_stmt(s, *st); } match blk.expr { @@ -1238,7 +1238,7 @@ pub fn print_expr(s: @ps, expr: &ast::expr) { print_block(s, blk); } ast::expr_loop(ref blk, opt_ident) => { - for opt_ident.iter().advance |ident| { + foreach ident in opt_ident.iter() { word(s.s, "'"); print_ident(s, *ident); word_space(s, ":"); @@ -1255,12 +1255,12 @@ pub fn print_expr(s: @ps, expr: &ast::expr) { space(s.s); bopen(s); let len = arms.len(); - for arms.iter().enumerate().advance |(i, arm)| { + foreach (i, arm) in arms.iter().enumerate() { space(s.s); cbox(s, indent_unit); ibox(s, 0u); let mut first = true; - for arm.pats.iter().advance |p| { + foreach p in arm.pats.iter() { if first { first = false; } else { space(s.s); word_space(s, "|"); } @@ -1386,7 +1386,7 @@ pub fn print_expr(s: @ps, expr: &ast::expr) { ast::expr_break(opt_ident) => { word(s.s, "break"); space(s.s); - for opt_ident.iter().advance |ident| { + foreach ident in opt_ident.iter() { word(s.s, "'"); print_ident(s, *ident); space(s.s); @@ -1395,7 +1395,7 @@ pub fn print_expr(s: @ps, expr: &ast::expr) { ast::expr_again(opt_ident) => { word(s.s, "loop"); space(s.s); - for opt_ident.iter().advance |ident| { + foreach ident in opt_ident.iter() { word(s.s, "'"); print_ident(s, *ident); space(s.s) @@ -1426,7 +1426,7 @@ pub fn print_expr(s: @ps, expr: &ast::expr) { popen(s); print_string(s, a.asm); word_space(s, ":"); - for a.outputs.iter().advance |&(co, o)| { + foreach &(co, o) in a.outputs.iter() { print_string(s, co); popen(s); print_expr(s, o); @@ -1434,7 +1434,7 @@ pub fn print_expr(s: @ps, expr: &ast::expr) { word_space(s, ","); } word_space(s, ":"); - for a.inputs.iter().advance |&(co, o)| { + foreach &(co, o) in a.inputs.iter() { print_string(s, co); popen(s); print_expr(s, o); @@ -1513,7 +1513,7 @@ fn print_path_(s: @ps, path: &ast::Path, colons_before_params: bool, maybe_print_comment(s, path.span.lo); if path.global { word(s.s, "::"); } let mut first = true; - for path.idents.iter().advance |id| { + foreach id in path.idents.iter() { if first { first = false; } else { word(s.s, "::"); } print_ident(s, *id); } @@ -1526,7 +1526,7 @@ fn print_path_(s: @ps, path: &ast::Path, colons_before_params: bool, if path.rp.is_some() || !path.types.is_empty() { word(s.s, "<"); - for path.rp.iter().advance |r| { + foreach r in path.rp.iter() { print_lifetime(s, r); if !path.types.is_empty() { word_space(s, ","); @@ -1640,7 +1640,7 @@ pub fn print_pat(s: @ps, pat: &ast::pat) { do commasep(s, inconsistent, *before) |s, &p| { print_pat(s, p); } - for slice.iter().advance |&p| { + foreach &p in slice.iter() { if !before.is_empty() { word_space(s, ","); } word(s.s, ".."); print_pat(s, p); @@ -1700,11 +1700,11 @@ pub fn print_fn_args(s: @ps, decl: &ast::fn_decl, // self type and the args all in the same box. box(s, 0u, inconsistent); let mut first = true; - for opt_explicit_self.iter().advance |explicit_self| { + foreach explicit_self in opt_explicit_self.iter() { first = !print_explicit_self(s, *explicit_self); } - for decl.inputs.iter().advance |arg| { + foreach arg in decl.inputs.iter() { if first { first = false; } else { word_space(s, ","); } print_arg(s, arg); } @@ -1751,7 +1751,7 @@ pub fn print_bounds(s: @ps, bounds: &OptVec, if !bounds.is_empty() { word(s.s, ":"); let mut first = true; - for bounds.iter().advance |bound| { + foreach bound in bounds.iter() { nbsp(s); if first { first = false; @@ -1950,10 +1950,10 @@ pub fn print_ty_fn(s: @ps, // self type and the args all in the same box. box(s, 0u, inconsistent); let mut first = true; - for opt_explicit_self.iter().advance |explicit_self| { + foreach explicit_self in opt_explicit_self.iter() { first = !print_explicit_self(s, *explicit_self); } - for decl.inputs.iter().advance |arg| { + foreach arg in decl.inputs.iter() { if first { first = false; } else { word_space(s, ","); } print_arg(s, arg); } @@ -2109,7 +2109,7 @@ pub fn print_comment(s: @ps, cmnt: &comments::cmnt) { } comments::isolated => { pprust::hardbreak_if_not_bol(s); - for cmnt.lines.iter().advance |line| { + foreach line in cmnt.lines.iter() { // Don't print empty lines because they will end up as trailing // whitespace if !line.is_empty() { word(s.s, *line); } @@ -2123,7 +2123,7 @@ pub fn print_comment(s: @ps, cmnt: &comments::cmnt) { hardbreak(s.s); } else { ibox(s, 0u); - for cmnt.lines.iter().advance |line| { + foreach line in cmnt.lines.iter() { if !line.is_empty() { word(s.s, *line); } hardbreak(s.s); } diff --git a/src/libsyntax/util/interner.rs b/src/libsyntax/util/interner.rs index 014186c9ff4..b9c8c3f4e4c 100644 --- a/src/libsyntax/util/interner.rs +++ b/src/libsyntax/util/interner.rs @@ -31,7 +31,7 @@ impl Interner { pub fn prefill(init: &[T]) -> Interner { let rv = Interner::new(); - for init.iter().advance |v| { + foreach v in init.iter() { rv.intern((*v).clone()); } rv @@ -93,7 +93,7 @@ impl StrInterner { pub fn prefill(init: &[&str]) -> StrInterner { let rv = StrInterner::new(); - for init.iter().advance |&v| { rv.intern(v); } + foreach &v in init.iter() { rv.intern(v); } rv } diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index 07749c7254b..d988f96d3d4 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -126,10 +126,10 @@ pub fn visit_mod(m: &_mod, _sp: span, _id: NodeId, (e, v): (E, vt)) { - for m.view_items.iter().advance |vi| { + foreach vi in m.view_items.iter() { (v.visit_view_item)(vi, (e.clone(), v)); } - for m.items.iter().advance |i| { + foreach i in m.items.iter() { (v.visit_item)(*i, (e.clone(), v)); } } @@ -173,10 +173,10 @@ pub fn visit_item(i: &item, (e, v): (E, vt)) { } item_mod(ref m) => (v.visit_mod)(m, i.span, i.id, (e, v)), item_foreign_mod(ref nm) => { - for nm.view_items.iter().advance |vi| { + foreach vi in nm.view_items.iter() { (v.visit_view_item)(vi, (e.clone(), v)); } - for nm.items.iter().advance |ni| { + foreach ni in nm.items.iter() { (v.visit_foreign_item)(*ni, (e.clone(), v)); } } @@ -194,11 +194,11 @@ pub fn visit_item(i: &item, (e, v): (E, vt)) { } item_impl(ref tps, ref traits, ref ty, ref methods) => { (v.visit_generics)(tps, (e.clone(), v)); - for traits.iter().advance |p| { + foreach p in traits.iter() { visit_trait_ref(p, (e.clone(), v)); } (v.visit_ty)(ty, (e.clone(), v)); - for methods.iter().advance |m| { + foreach m in methods.iter() { visit_method_helper(*m, (e.clone(), v)) } } @@ -208,10 +208,10 @@ pub fn visit_item(i: &item, (e, v): (E, vt)) { } item_trait(ref generics, ref traits, ref methods) => { (v.visit_generics)(generics, (e.clone(), v)); - for traits.iter().advance |p| { + foreach p in traits.iter() { visit_path(&p.path, (e.clone(), v)); } - for methods.iter().advance |m| { + foreach m in methods.iter() { (v.visit_trait_method)(m, (e.clone(), v)); } } @@ -222,10 +222,10 @@ pub fn visit_item(i: &item, (e, v): (E, vt)) { pub fn visit_enum_def(enum_definition: &ast::enum_def, tps: &Generics, (e, v): (E, vt)) { - for enum_definition.variants.iter().advance |vr| { + foreach vr in enum_definition.variants.iter() { match vr.node.kind { tuple_variant_kind(ref variant_args) => { - for variant_args.iter().advance |va| { + foreach va in variant_args.iter() { (v.visit_ty)(&va.ty, (e.clone(), v)); } } @@ -235,7 +235,7 @@ pub fn visit_enum_def(enum_definition: &ast::enum_def, } } // Visit the disr expr if it exists - for vr.node.disr_expr.iter().advance |ex| { + foreach ex in vr.node.disr_expr.iter() { (v.visit_expr)(*ex, (e.clone(), v)) } } @@ -250,12 +250,12 @@ pub fn visit_ty(t: &Ty, (e, v): (E, vt)) { (v.visit_ty)(mt.ty, (e, v)); }, ty_tup(ref ts) => { - for ts.iter().advance |tt| { + foreach tt in ts.iter() { (v.visit_ty)(tt, (e.clone(), v)); } }, ty_closure(ref f) => { - for f.decl.inputs.iter().advance |a| { + foreach a in f.decl.inputs.iter() { (v.visit_ty)(&a.ty, (e.clone(), v)); } (v.visit_ty)(&f.decl.output, (e.clone(), v)); @@ -264,7 +264,7 @@ pub fn visit_ty(t: &Ty, (e, v): (E, vt)) { }; }, ty_bare_fn(ref f) => { - for f.decl.inputs.iter().advance |a| { + foreach a in f.decl.inputs.iter() { (v.visit_ty)(&a.ty, (e.clone(), v)); } (v.visit_ty)(&f.decl.output, (e, v)); @@ -284,27 +284,27 @@ pub fn visit_ty(t: &Ty, (e, v): (E, vt)) { } pub fn visit_path(p: &Path, (e, v): (E, vt)) { - for p.types.iter().advance |tp| { (v.visit_ty)(tp, (e.clone(), v)); } + foreach tp in p.types.iter() { (v.visit_ty)(tp, (e.clone(), v)); } } pub fn visit_pat(p: &pat, (e, v): (E, vt)) { match p.node { pat_enum(ref path, ref children) => { visit_path(path, (e.clone(), v)); - for children.iter().advance |children| { - for children.iter().advance |child| { + foreach children in children.iter() { + foreach child in children.iter() { (v.visit_pat)(*child, (e.clone(), v)); } } } pat_struct(ref path, ref fields, _) => { visit_path(path, (e.clone(), v)); - for fields.iter().advance |f| { + foreach f in fields.iter() { (v.visit_pat)(f.pat, (e.clone(), v)); } } pat_tup(ref elts) => { - for elts.iter().advance |elt| { + foreach elt in elts.iter() { (v.visit_pat)(*elt, (e.clone(), v)) } }, @@ -313,7 +313,7 @@ pub fn visit_pat(p: &pat, (e, v): (E, vt)) { }, pat_ident(_, ref path, ref inner) => { visit_path(path, (e.clone(), v)); - for inner.iter().advance |subpat| { + foreach subpat in inner.iter() { (v.visit_pat)(*subpat, (e.clone(), v)) } } @@ -324,13 +324,13 @@ pub fn visit_pat(p: &pat, (e, v): (E, vt)) { } pat_wild => (), pat_vec(ref before, ref slice, ref after) => { - for before.iter().advance |elt| { + foreach elt in before.iter() { (v.visit_pat)(*elt, (e.clone(), v)); } - for slice.iter().advance |elt| { + foreach elt in slice.iter() { (v.visit_pat)(*elt, (e.clone(), v)); } - for after.iter().advance |tail| { + foreach tail in after.iter() { (v.visit_pat)(*tail, (e.clone(), v)); } } @@ -351,7 +351,7 @@ pub fn visit_foreign_item(ni: &foreign_item, (e, v): (E, vt)) { pub fn visit_ty_param_bounds(bounds: &OptVec, (e, v): (E, vt)) { - for bounds.iter().advance |bound| { + foreach bound in bounds.iter() { match *bound { TraitTyParamBound(ref ty) => visit_trait_ref(ty, (e.clone(), v)), RegionTyParamBound => {} @@ -360,13 +360,13 @@ pub fn visit_ty_param_bounds(bounds: &OptVec, } pub fn visit_generics(generics: &Generics, (e, v): (E, vt)) { - for generics.ty_params.iter().advance |tp| { + foreach tp in generics.ty_params.iter() { visit_ty_param_bounds(&tp.bounds, (e.clone(), v)); } } pub fn visit_fn_decl(fd: &fn_decl, (e, v): (E, vt)) { - for fd.inputs.iter().advance |a| { + foreach a in fd.inputs.iter() { (v.visit_pat)(a.pat, (e.clone(), v)); (v.visit_ty)(&a.ty, (e.clone(), v)); } @@ -395,7 +395,7 @@ pub fn visit_fn(fk: &fn_kind, decl: &fn_decl, body: &Block, _sp: span, } pub fn visit_ty_method(m: &TypeMethod, (e, v): (E, vt)) { - for m.decl.inputs.iter().advance |a| { + foreach a in m.decl.inputs.iter() { (v.visit_ty)(&a.ty, (e.clone(), v)); } (v.visit_generics)(&m.generics, (e.clone(), v)); @@ -416,7 +416,7 @@ pub fn visit_struct_def( _id: NodeId, (e, v): (E, vt) ) { - for sd.fields.iter().advance |f| { + foreach f in sd.fields.iter() { (v.visit_struct_field)(*f, (e.clone(), v)); } } @@ -426,10 +426,10 @@ pub fn visit_struct_field(sf: &struct_field, (e, v): (E, vt)) { } pub fn visit_block(b: &Block, (e, v): (E, vt)) { - for b.view_items.iter().advance |vi| { + foreach vi in b.view_items.iter() { (v.visit_view_item)(vi, (e.clone(), v)); } - for b.stmts.iter().advance |s| { + foreach s in b.stmts.iter() { (v.visit_stmt)(*s, (e.clone(), v)); } visit_expr_opt(b.expr, (e, v)); @@ -456,7 +456,7 @@ pub fn visit_expr_opt(eo: Option<@expr>, (e, v): (E, vt)) { } pub fn visit_exprs(exprs: &[@expr], (e, v): (E, vt)) { - for exprs.iter().advance |ex| { (v.visit_expr)(*ex, (e.clone(), v)); } + foreach ex in exprs.iter() { (v.visit_expr)(*ex, (e.clone(), v)); } } pub fn visit_mac(_m: &mac, (_e, _v): (E, vt)) { @@ -473,13 +473,13 @@ pub fn visit_expr(ex: @expr, (e, v): (E, vt)) { } expr_struct(ref p, ref flds, base) => { visit_path(p, (e.clone(), v)); - for flds.iter().advance |f| { + foreach f in flds.iter() { (v.visit_expr)(f.expr, (e.clone(), v)); } visit_expr_opt(base, (e.clone(), v)); } expr_tup(ref elts) => { - for elts.iter().advance |el| { (v.visit_expr)(*el, (e.clone(), v)) } + foreach el in elts.iter() { (v.visit_expr)(*el, (e.clone(), v)) } } expr_call(callee, ref args, _) => { visit_exprs(*args, (e.clone(), v)); @@ -487,7 +487,7 @@ pub fn visit_expr(ex: @expr, (e, v): (E, vt)) { } expr_method_call(_, callee, _, ref tys, ref args, _) => { visit_exprs(*args, (e.clone(), v)); - for tys.iter().advance |tp| { + foreach tp in tys.iter() { (v.visit_ty)(tp, (e.clone(), v)); } (v.visit_expr)(callee, (e.clone(), v)); @@ -520,7 +520,7 @@ pub fn visit_expr(ex: @expr, (e, v): (E, vt)) { expr_loop(ref b, _) => (v.visit_block)(b, (e.clone(), v)), expr_match(x, ref arms) => { (v.visit_expr)(x, (e.clone(), v)); - for arms.iter().advance |a| { (v.visit_arm)(a, (e.clone(), v)); } + foreach a in arms.iter() { (v.visit_arm)(a, (e.clone(), v)); } } expr_fn_block(ref decl, ref body) => { (v.visit_fn)( @@ -543,7 +543,7 @@ pub fn visit_expr(ex: @expr, (e, v): (E, vt)) { } expr_field(x, _, ref tys) => { (v.visit_expr)(x, (e.clone(), v)); - for tys.iter().advance |tp| { + foreach tp in tys.iter() { (v.visit_ty)(tp, (e.clone(), v)); } } @@ -563,10 +563,10 @@ pub fn visit_expr(ex: @expr, (e, v): (E, vt)) { expr_mac(ref mac) => visit_mac(mac, (e.clone(), v)), expr_paren(x) => (v.visit_expr)(x, (e.clone(), v)), expr_inline_asm(ref a) => { - for a.inputs.iter().advance |&(_, input)| { + foreach &(_, input) in a.inputs.iter() { (v.visit_expr)(input, (e.clone(), v)); } - for a.outputs.iter().advance |&(_, out)| { + foreach &(_, out) in a.outputs.iter() { (v.visit_expr)(out, (e.clone(), v)); } } @@ -575,7 +575,7 @@ pub fn visit_expr(ex: @expr, (e, v): (E, vt)) { } pub fn visit_arm(a: &arm, (e, v): (E, vt)) { - for a.pats.iter().advance |p| { (v.visit_pat)(*p, (e.clone(), v)); } + foreach p in a.pats.iter() { (v.visit_pat)(*p, (e.clone(), v)); } visit_expr_opt(a.guard, (e.clone(), v)); (v.visit_block)(&a.body, (e.clone(), v)); } diff --git a/src/test/auxiliary/cci_nested_lib.rs b/src/test/auxiliary/cci_nested_lib.rs index b8e831c4503..85f968cc2e1 100644 --- a/src/test/auxiliary/cci_nested_lib.rs +++ b/src/test/auxiliary/cci_nested_lib.rs @@ -28,7 +28,7 @@ pub fn alist_get 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(); } diff --git a/src/test/bench/graph500-bfs.rs b/src/test/bench/graph500-bfs.rs index 00add20fb7d..10bfb4f60ed 100644 --- a/src/test/bench/graph500-bfs.rs +++ b/src/test/bench/graph500-bfs.rs @@ -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, diff --git a/src/test/bench/msgsend-pipes-shared.rs b/src/test/bench/msgsend-pipes-shared.rs index 9b0fd23d9cb..989630448be 100644 --- a/src/test/bench/msgsend-pipes-shared.rs +++ b/src/test/bench/msgsend-pipes-shared.rs @@ -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(); } diff --git a/src/test/bench/msgsend-pipes.rs b/src/test/bench/msgsend-pipes.rs index 5ce5e902ed1..77803ecfc3c 100644 --- a/src/test/bench/msgsend-pipes.rs +++ b/src/test/bench/msgsend-pipes.rs @@ -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(); } diff --git a/src/test/bench/msgsend-ring-mutex-arcs.rs b/src/test/bench/msgsend-ring-mutex-arcs.rs index c685057874a..621f38035e9 100644 --- a/src/test/bench/msgsend-ring-mutex-arcs.rs +++ b/src/test/bench/msgsend-ring-mutex-arcs.rs @@ -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() } diff --git a/src/test/bench/msgsend-ring-pipes.rs b/src/test/bench/msgsend-ring-pipes.rs index 9eb415e8892..27cd34c5199 100644 --- a/src/test/bench/msgsend-ring-pipes.rs +++ b/src/test/bench/msgsend-ring-pipes.rs @@ -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(); } diff --git a/src/test/bench/msgsend-ring-rw-arcs.rs b/src/test/bench/msgsend-ring-rw-arcs.rs index e7def11b266..609a160aa5d 100644 --- a/src/test/bench/msgsend-ring-rw-arcs.rs +++ b/src/test/bench/msgsend-ring-rw-arcs.rs @@ -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(); } diff --git a/src/test/bench/shootout-chameneos-redux.rs b/src/test/bench/shootout-chameneos-redux.rs index f218b963aaa..52548f40f82 100644 --- a/src/test/bench/shootout-chameneos-redux.rs +++ b/src/test/bench/shootout-chameneos-redux.rs @@ -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); } diff --git a/src/test/bench/shootout-fannkuch-redux.rs b/src/test/bench/shootout-fannkuch-redux.rs index 97c2cba3b9e..35179328c83 100644 --- a/src/test/bench/shootout-fannkuch-redux.rs +++ b/src/test/bench/shootout-fannkuch-redux.rs @@ -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; } diff --git a/src/test/bench/shootout-fasta-redux.rs b/src/test/bench/shootout-fasta-redux.rs index cc23c001833..f2cc364ab10 100644 --- a/src/test/bench/shootout-fasta-redux.rs +++ b/src/test/bench/shootout-fasta-redux.rs @@ -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; } diff --git a/src/test/bench/shootout-fasta.rs b/src/test/bench/shootout-fasta.rs index 4597212b390..350d139676f 100644 --- a/src/test/bench/shootout-fasta.rs +++ b/src/test/bench/shootout-fasta.rs @@ -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}); } diff --git a/src/test/bench/shootout-k-nucleotide-pipes.rs b/src/test/bench/shootout-k-nucleotide-pipes.rs index 8b4664ac060..6c40ede7682 100644 --- a/src/test/bench/shootout-k-nucleotide-pipes.rs +++ b/src/test/bench/shootout-k-nucleotide-pipes.rs @@ -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()); } } diff --git a/src/test/bench/shootout-nbody.rs b/src/test/bench/shootout-nbody.rs index 6d04292588d..3fbebbdb556 100644 --- a/src/test/bench/shootout-nbody.rs +++ b/src/test/bench/shootout-nbody.rs @@ -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]; diff --git a/src/test/bench/shootout-pfib.rs b/src/test/bench/shootout-pfib.rs index 6ea22715750..9344bb63205 100644 --- a/src/test/bench/shootout-pfib.rs +++ b/src/test/bench/shootout-pfib.rs @@ -89,7 +89,7 @@ fn stress(num_tasks: int) { stress_task(i); } } - for results.iter().advance |r| { + foreach r in results.iter() { r.recv(); } } diff --git a/src/test/bench/shootout-spectralnorm.rs b/src/test/bench/shootout-spectralnorm.rs index 388613482c2..893431e6bb3 100644 --- a/src/test/bench/shootout-spectralnorm.rs +++ b/src/test/bench/shootout-spectralnorm.rs @@ -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; diff --git a/src/test/compile-fail/borrowck-insert-during-each.rs b/src/test/compile-fail/borrowck-insert-during-each.rs index 189a0ef9d70..c535bf7daea 100644 --- a/src/test/compile-fail/borrowck-insert-during-each.rs +++ b/src/test/compile-fail/borrowck-insert-during-each.rs @@ -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); } } diff --git a/src/test/compile-fail/borrowck-mut-boxed-vec.rs b/src/test/compile-fail/borrowck-mut-boxed-vec.rs index dd72a71b215..c6aa1713db8 100644 --- a/src/test/compile-fail/borrowck-mut-boxed-vec.rs +++ b/src/test/compile-fail/borrowck-mut-boxed-vec.rs @@ -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 } } diff --git a/src/test/compile-fail/issue-2149.rs b/src/test/compile-fail/issue-2149.rs index b5a5eed6a35..6fe802b650b 100644 --- a/src/test/compile-fail/issue-2149.rs +++ b/src/test/compile-fail/issue-2149.rs @@ -15,7 +15,7 @@ trait vec_monad { impl vec_monad for ~[A] { fn bind(&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 } diff --git a/src/test/compile-fail/issue-2150.rs b/src/test/compile-fail/issue-2150.rs index 59789223bf2..d1e8d96a769 100644 --- a/src/test/compile-fail/issue-2150.rs +++ b/src/test/compile-fail/issue-2150.rs @@ -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; } diff --git a/src/test/compile-fail/issue-5100.rs b/src/test/compile-fail/issue-5100.rs index 7a6b8c5606b..9fc84c98cf5 100644 --- a/src/test/compile-fail/issue-5100.rs +++ b/src/test/compile-fail/issue-5100.rs @@ -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` diff --git a/src/test/compile-fail/vec-mut-iter-borrow.rs b/src/test/compile-fail/vec-mut-iter-borrow.rs index a4a488d9edd..ef197a10c7d 100644 --- a/src/test/compile-fail/vec-mut-iter-borrow.rs +++ b/src/test/compile-fail/vec-mut-iter-borrow.rs @@ -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 } } diff --git a/src/test/pretty/block-comment-wchar.pp b/src/test/pretty/block-comment-wchar.pp index c666950034a..d1629885c7a 100644 --- a/src/test/pretty/block-comment-wchar.pp +++ b/src/test/pretty/block-comment-wchar.pp @@ -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)); } diff --git a/src/test/pretty/block-comment-wchar.rs b/src/test/pretty/block-comment-wchar.rs index f0d46f39cdf..822a71da3c8 100644 --- a/src/test/pretty/block-comment-wchar.rs +++ b/src/test/pretty/block-comment-wchar.rs @@ -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)); } diff --git a/src/test/pretty/for-comment.rs b/src/test/pretty/for-comment.rs index 15631337d2a..750c8dd8495 100644 --- a/src/test/pretty/for-comment.rs +++ b/src/test/pretty/for-comment.rs @@ -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 } } diff --git a/src/test/run-pass/auto-loop.rs b/src/test/run-pass/auto-loop.rs index 185a5a6407c..37ac5f85a9e 100644 --- a/src/test/run-pass/auto-loop.rs +++ b/src/test/run-pass/auto-loop.rs @@ -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); diff --git a/src/test/run-pass/block-arg.rs b/src/test/run-pass/block-arg.rs index 466f2def290..313d5a62554 100644 --- a/src/test/run-pass/block-arg.rs +++ b/src/test/run-pass/block-arg.rs @@ -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); } diff --git a/src/test/run-pass/block-iter-1.rs b/src/test/run-pass/block-iter-1.rs index 6da1f9131a5..d9c9670c858 100644 --- a/src/test/run-pass/block-iter-1.rs +++ b/src/test/run-pass/block-iter-1.rs @@ -10,7 +10,7 @@ // xfail-fast -fn iter_vec(v: ~[T], f: &fn(&T)) { for v.iter().advance |x| { f(x); } } +fn iter_vec(v: ~[T], f: &fn(&T)) { foreach x in v.iter() { f(x); } } pub fn main() { let v = ~[1, 2, 3, 4, 5, 6, 7]; diff --git a/src/test/run-pass/block-iter-2.rs b/src/test/run-pass/block-iter-2.rs index 3092cd5338c..e51ca5bcc95 100644 --- a/src/test/run-pass/block-iter-2.rs +++ b/src/test/run-pass/block-iter-2.rs @@ -10,7 +10,7 @@ // xfail-fast -fn iter_vec(v: ~[T], f: &fn(&T)) { for v.iter().advance |x| { f(x); } } +fn iter_vec(v: ~[T], f: &fn(&T)) { foreach x in v.iter() { f(x); } } pub fn main() { let v = ~[1, 2, 3, 4, 5]; diff --git a/src/test/run-pass/borrowck-borrow-from-at-vec.rs b/src/test/run-pass/borrowck-borrow-from-at-vec.rs index 21ea875b2f4..3b1e28ab915 100644 --- a/src/test/run-pass/borrowck-borrow-from-at-vec.rs +++ b/src/test/run-pass/borrowck-borrow-from-at-vec.rs @@ -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; } diff --git a/src/test/run-pass/borrowck-mut-vec-as-imm-slice.rs b/src/test/run-pass/borrowck-mut-vec-as-imm-slice.rs index 8f74e6cdc29..c6fc84b2054 100644 --- a/src/test/run-pass/borrowck-mut-vec-as-imm-slice.rs +++ b/src/test/run-pass/borrowck-mut-vec-as-imm-slice.rs @@ -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 } diff --git a/src/test/run-pass/borrowck-wg-borrow-mut-to-imm-3.rs b/src/test/run-pass/borrowck-wg-borrow-mut-to-imm-3.rs index 612a472cde5..c6ef7111043 100644 --- a/src/test/run-pass/borrowck-wg-borrow-mut-to-imm-3.rs +++ b/src/test/run-pass/borrowck-wg-borrow-mut-to-imm-3.rs @@ -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); } } diff --git a/src/test/run-pass/break.rs b/src/test/run-pass/break.rs index 85c6f90a742..46b6eec6fa6 100644 --- a/src/test/run-pass/break.rs +++ b/src/test/run-pass/break.rs @@ -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)); } diff --git a/src/test/run-pass/coerce-reborrow-imm-vec-arg.rs b/src/test/run-pass/coerce-reborrow-imm-vec-arg.rs index f0c5b58d155..c31b72c1bd9 100644 --- a/src/test/run-pass/coerce-reborrow-imm-vec-arg.rs +++ b/src/test/run-pass/coerce-reborrow-imm-vec-arg.rs @@ -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; } diff --git a/src/test/run-pass/const-vec-of-fns.rs b/src/test/run-pass/const-vec-of-fns.rs index 45302363c38..07655cf3525 100644 --- a/src/test/run-pass/const-vec-of-fns.rs +++ b/src/test/run-pass/const-vec-of-fns.rs @@ -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)() } } diff --git a/src/test/run-pass/deriving-cmp-generic-enum.rs b/src/test/run-pass/deriving-cmp-generic-enum.rs index e5cf1536771..0b070a6ec7a 100644 --- a/src/test/run-pass/deriving-cmp-generic-enum.rs +++ b/src/test/run-pass/deriving-cmp-generic-enum.rs @@ -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; diff --git a/src/test/run-pass/deriving-cmp-generic-struct.rs b/src/test/run-pass/deriving-cmp-generic-struct.rs index 426bfd7eb2f..026994590a0 100644 --- a/src/test/run-pass/deriving-cmp-generic-struct.rs +++ b/src/test/run-pass/deriving-cmp-generic-struct.rs @@ -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; diff --git a/src/test/run-pass/deriving-cmp-generic-tuple-struct.rs b/src/test/run-pass/deriving-cmp-generic-tuple-struct.rs index 0acebdf05f4..4d7701703db 100644 --- a/src/test/run-pass/deriving-cmp-generic-tuple-struct.rs +++ b/src/test/run-pass/deriving-cmp-generic-tuple-struct.rs @@ -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; diff --git a/src/test/run-pass/explicit-self-closures.rs b/src/test/run-pass/explicit-self-closures.rs index 1b87c16b4b9..10f825e32cd 100644 --- a/src/test/run-pass/explicit-self-closures.rs +++ b/src/test/run-pass/explicit-self-closures.rs @@ -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; } } } diff --git a/src/test/run-pass/fn-pattern-expected-type-2.rs b/src/test/run-pass/fn-pattern-expected-type-2.rs index bb8df4bb33f..bf36d86c849 100644 --- a/src/test/run-pass/fn-pattern-expected-type-2.rs +++ b/src/test/run-pass/fn-pattern-expected-type-2.rs @@ -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()); } diff --git a/src/test/run-pass/for-loop-fail.rs b/src/test/run-pass/for-loop-fail.rs index bf916dfa2bd..68d075834f5 100644 --- a/src/test/run-pass/for-loop-fail.rs +++ b/src/test/run-pass/for-loop-fail.rs @@ -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"); } } diff --git a/src/test/run-pass/generic-static-methods.rs b/src/test/run-pass/generic-static-methods.rs index 532f4bc7ffb..388f61c1b03 100755 --- a/src/test/run-pass/generic-static-methods.rs +++ b/src/test/run-pass/generic-static-methods.rs @@ -15,7 +15,7 @@ trait vec_utils { impl vec_utils for ~[T] { fn map_(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 diff --git a/src/test/run-pass/hashmap-memory.rs b/src/test/run-pass/hashmap-memory.rs index ecf6546e741..3d41065365c 100644 --- a/src/test/run-pass/hashmap-memory.rs +++ b/src/test/run-pass/hashmap-memory.rs @@ -31,7 +31,7 @@ mod map_reduce { enum ctrl_proto { find_reducer(~[u8], Chan), mapper_done, } fn start_mappers(ctrl: SharedChan, 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()) ); diff --git a/src/test/run-pass/issue-2904.rs b/src/test/run-pass/issue-2904.rs index 48f40e2eda7..092d5e5813b 100644 --- a/src/test/run-pass/issue-2904.rs +++ b/src/test/run-pass/issue-2904.rs @@ -67,13 +67,13 @@ fn read_board_grid(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 } diff --git a/src/test/run-pass/issue-3389.rs b/src/test/run-pass/issue-3389.rs index 8dcf4ed4a48..84d3db444e9 100644 --- a/src/test/run-pass/issue-3389.rs +++ b/src/test/run-pass/issue-3389.rs @@ -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); } } diff --git a/src/test/run-pass/issue-3563-2.rs b/src/test/run-pass/issue-3563-2.rs index 0b49e43235a..7e9b637516f 100644 --- a/src/test/run-pass/issue-3563-2.rs +++ b/src/test/run-pass/issue-3563-2.rs @@ -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) } } diff --git a/src/test/run-pass/issue-3563-3.rs b/src/test/run-pass/issue-3563-3.rs index 2465cd3dd59..b85ddf95a54 100644 --- a/src/test/run-pass/issue-3563-3.rs +++ b/src/test/run-pass/issue-3563-3.rs @@ -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)}; } } diff --git a/src/test/run-pass/issue-4241.rs b/src/test/run-pass/issue-4241.rs index 857ecb3f9cb..3bfb2ef3853 100644 --- a/src/test/run-pass/issue-4241.rs +++ b/src/test/run-pass/issue-4241.rs @@ -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() ); } diff --git a/src/test/run-pass/issue-4542.rs b/src/test/run-pass/issue-4542.rs index 4aa83b853de..da46eb42152 100644 --- a/src/test/run-pass/issue-4542.rs +++ b/src/test/run-pass/issue-4542.rs @@ -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 => { } } diff --git a/src/test/run-pass/linear-for-loop.rs b/src/test/run-pass/linear-for-loop.rs index c4e73dfcda5..c6002afded7 100644 --- a/src/test/run-pass/linear-for-loop.rs +++ b/src/test/run-pass/linear-for-loop.rs @@ -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)); } diff --git a/src/test/run-pass/loop-scope.rs b/src/test/run-pass/loop-scope.rs index aec16e2d47b..746487f8aff 100644 --- a/src/test/run-pass/loop-scope.rs +++ b/src/test/run-pass/loop-scope.rs @@ -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); } diff --git a/src/test/run-pass/monad.rs b/src/test/run-pass/monad.rs index eaf9eafa2a5..316f872b82f 100644 --- a/src/test/run-pass/monad.rs +++ b/src/test/run-pass/monad.rs @@ -19,7 +19,7 @@ trait vec_monad { impl vec_monad for ~[A] { fn bind(&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 diff --git a/src/test/run-pass/morestack6.rs b/src/test/run-pass/morestack6.rs index cbbead6dbda..bfb68d296c1 100644 --- a/src/test/run-pass/morestack6.rs +++ b/src/test/run-pass/morestack6.rs @@ -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; diff --git a/src/test/run-pass/mutability-inherits-through-fixed-length-vec.rs b/src/test/run-pass/mutability-inherits-through-fixed-length-vec.rs index b0ce6556cb6..5de4b74922c 100644 --- a/src/test/run-pass/mutability-inherits-through-fixed-length-vec.rs +++ b/src/test/run-pass/mutability-inherits-through-fixed-length-vec.rs @@ -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() { diff --git a/src/test/run-pass/overload-index-operator.rs b/src/test/run-pass/overload-index-operator.rs index 824cacc620d..706168844f5 100644 --- a/src/test/run-pass/overload-index-operator.rs +++ b/src/test/run-pass/overload-index-operator.rs @@ -31,7 +31,7 @@ impl AssociationList { impl Index for AssociationList { 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(); } diff --git a/src/test/run-pass/packed-struct-vec.rs b/src/test/run-pass/packed-struct-vec.rs index de34d589afc..0f84adcc941 100644 --- a/src/test/run-pass/packed-struct-vec.rs +++ b/src/test/run-pass/packed-struct-vec.rs @@ -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 }); } } diff --git a/src/test/run-pass/reflect-visit-data.rs b/src/test/run-pass/reflect-visit-data.rs index e91537bec3b..090b5f549d4 100644 --- a/src/test/run-pass/reflect-visit-data.rs +++ b/src/test/run-pass/reflect-visit-data.rs @@ -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()); diff --git a/src/test/run-pass/reflect-visit-type.rs b/src/test/run-pass/reflect-visit-type.rs index dc639bad75e..e80dc2269c2 100644 --- a/src/test/run-pass/reflect-visit-type.rs +++ b/src/test/run-pass/reflect-visit-type.rs @@ -170,7 +170,7 @@ pub fn main() { visit_ty::(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", ~"]"]); diff --git a/src/test/run-pass/shadow.rs b/src/test/run-pass/shadow.rs index 7486005f7e5..5cb2f9b8727 100644 --- a/src/test/run-pass/shadow.rs +++ b/src/test/run-pass/shadow.rs @@ -16,7 +16,7 @@ fn foo(c: ~[int]) { match none:: { some::(_) => { - for c.iter().advance |i| { + foreach i in c.iter() { info!(a); let a = 17; b.push(a); diff --git a/src/test/run-pass/static-impl.rs b/src/test/run-pass/static-impl.rs index 1588bd1a5a5..4f86c87518a 100644 --- a/src/test/run-pass/static-impl.rs +++ b/src/test/run-pass/static-impl.rs @@ -48,10 +48,10 @@ trait vec_utils { impl vec_utils 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_(&self, f: &fn(&T) -> U) -> ~[U] { let mut r = ~[]; - for self.iter().advance |elt| { + foreach elt in self.iter() { r.push(f(elt)); } r diff --git a/src/test/run-pass/task-comm-3.rs b/src/test/run-pass/task-comm-3.rs index 6c7405ef441..6b2516f5921 100644 --- a/src/test/run-pass/task-comm-3.rs +++ b/src/test/run-pass/task-comm-3.rs @@ -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); diff --git a/src/test/run-pass/trait-bounds-in-arc.rs b/src/test/run-pass/trait-bounds-in-arc.rs index 0677b63b5aa..e0be4ccf810 100644 --- a/src/test/run-pass/trait-bounds-in-arc.rs +++ b/src/test/run-pass/trait-bounds-in-arc.rs @@ -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()); } } diff --git a/src/test/run-pass/unfoldr-cross-crate.rs b/src/test/run-pass/unfoldr-cross-crate.rs index 7a86116d3ec..a5b85681420 100644 --- a/src/test/run-pass/unfoldr-cross-crate.rs +++ b/src/test/run-pass/unfoldr-cross-crate.rs @@ -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; } diff --git a/src/test/run-pass/utf8.rs b/src/test/run-pass/utf8.rs index 955e6118c83..1ebe72d19c1 100644 --- a/src/test/run-pass/utf8.rs +++ b/src/test/run-pass/utf8.rs @@ -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];