]> git.lizzy.rs Git - rust.git/commitdiff
migrate many `for` loops to `foreach`
authorDaniel Micay <danielmicay@gmail.com>
Thu, 1 Aug 2013 07:16:42 +0000 (03:16 -0400)
committerDaniel Micay <danielmicay@gmail.com>
Thu, 1 Aug 2013 09:34:55 +0000 (05:34 -0400)
255 files changed:
doc/po/rust.md.pot
doc/po/tutorial-container.md.pot
doc/po/tutorial-tasks.md.pot
doc/po/tutorial.md.pot
doc/rust.md
doc/tutorial-container.md
doc/tutorial-tasks.md
doc/tutorial.md
src/compiletest/compiletest.rs
src/compiletest/procsrv.rs
src/compiletest/runtest.rs
src/libextra/arc.rs
src/libextra/base64.rs
src/libextra/bitv.rs
src/libextra/container.rs
src/libextra/crypto/digest.rs
src/libextra/crypto/sha1.rs
src/libextra/crypto/sha2.rs
src/libextra/dlist.rs
src/libextra/fileinput.rs
src/libextra/getopts.rs
src/libextra/iter.rs
src/libextra/json.rs
src/libextra/num/bigint.rs
src/libextra/num/complex.rs
src/libextra/num/rational.rs
src/libextra/priority_queue.rs
src/libextra/ringbuf.rs
src/libextra/serialize.rs
src/libextra/smallintmap.rs
src/libextra/sort.rs
src/libextra/stats.rs
src/libextra/sync.rs
src/libextra/task_pool.rs
src/libextra/terminfo/parm.rs
src/libextra/terminfo/parser/compiled.rs
src/libextra/terminfo/searcher.rs
src/libextra/test.rs
src/libextra/time.rs
src/libextra/treemap.rs
src/libextra/url.rs
src/libextra/workcache.rs
src/librust/rust.rs
src/librustc/back/link.rs
src/librustc/back/passes.rs
src/librustc/back/rpath.rs
src/librustc/driver/driver.rs
src/librustc/front/test.rs
src/librustc/metadata/creader.rs
src/librustc/metadata/cstore.rs
src/librustc/metadata/decoder.rs
src/librustc/metadata/encoder.rs
src/librustc/metadata/filesearch.rs
src/librustc/metadata/loader.rs
src/librustc/metadata/tyencode.rs
src/librustc/middle/astencode.rs
src/librustc/middle/borrowck/check_loans.rs
src/librustc/middle/borrowck/gather_loans/gather_moves.rs
src/librustc/middle/borrowck/gather_loans/mod.rs
src/librustc/middle/borrowck/gather_loans/restrictions.rs
src/librustc/middle/borrowck/mod.rs
src/librustc/middle/borrowck/move_data.rs
src/librustc/middle/cfg/construct.rs
src/librustc/middle/check_const.rs
src/librustc/middle/check_match.rs
src/librustc/middle/const_eval.rs
src/librustc/middle/dataflow.rs
src/librustc/middle/entry.rs
src/librustc/middle/graph.rs
src/librustc/middle/kind.rs
src/librustc/middle/lang_items.rs
src/librustc/middle/lint.rs
src/librustc/middle/liveness.rs
src/librustc/middle/mem_categorization.rs
src/librustc/middle/moves.rs
src/librustc/middle/privacy.rs
src/librustc/middle/reachable.rs
src/librustc/middle/region.rs
src/librustc/middle/resolve.rs
src/librustc/middle/trans/_match.rs
src/librustc/middle/trans/adt.rs
src/librustc/middle/trans/asm.rs
src/librustc/middle/trans/base.rs
src/librustc/middle/trans/builder.rs
src/librustc/middle/trans/cabi.rs
src/librustc/middle/trans/cabi_arm.rs
src/librustc/middle/trans/cabi_mips.rs
src/librustc/middle/trans/cabi_x86_64.rs
src/librustc/middle/trans/callee.rs
src/librustc/middle/trans/closure.rs
src/librustc/middle/trans/common.rs
src/librustc/middle/trans/controlflow.rs
src/librustc/middle/trans/expr.rs
src/librustc/middle/trans/foreign.rs
src/librustc/middle/trans/glue.rs
src/librustc/middle/trans/inline.rs
src/librustc/middle/trans/meth.rs
src/librustc/middle/trans/monomorphize.rs
src/librustc/middle/trans/reflect.rs
src/librustc/middle/trans/tvec.rs
src/librustc/middle/trans/type_use.rs
src/librustc/middle/ty.rs
src/librustc/middle/typeck/astconv.rs
src/librustc/middle/typeck/check/_match.rs
src/librustc/middle/typeck/check/method.rs
src/librustc/middle/typeck/check/mod.rs
src/librustc/middle/typeck/check/regionck.rs
src/librustc/middle/typeck/check/regionmanip.rs
src/librustc/middle/typeck/check/vtable.rs
src/librustc/middle/typeck/check/writeback.rs
src/librustc/middle/typeck/coherence.rs
src/librustc/middle/typeck/collect.rs
src/librustc/middle/typeck/infer/error_reporting.rs
src/librustc/middle/typeck/infer/glb.rs
src/librustc/middle/typeck/infer/mod.rs
src/librustc/middle/typeck/infer/region_inference/mod.rs
src/librustc/middle/typeck/infer/sub.rs
src/librustc/middle/typeck/infer/test.rs
src/librustc/middle/typeck/rscope.rs
src/librustc/rustc.rs
src/librustc/util/ppaux.rs
src/librustdoc/config.rs
src/librustdoc/extract.rs
src/librustdoc/markdown_pass.rs
src/librustdoc/sectionalize_pass.rs
src/librusti/program.rs
src/librusti/rusti.rs
src/librustpkg/installed_packages.rs
src/librustpkg/package_source.rs
src/librustpkg/path_util.rs
src/librustpkg/rustpkg.rs
src/librustpkg/tests.rs
src/librustpkg/util.rs
src/librustpkg/version.rs
src/librustpkg/workspace.rs
src/libstd/at_vec.rs
src/libstd/either.rs
src/libstd/hash.rs
src/libstd/hashmap.rs
src/libstd/io.rs
src/libstd/iterator.rs
src/libstd/option.rs
src/libstd/os.rs
src/libstd/path.rs
src/libstd/pipes.rs
src/libstd/rand.rs
src/libstd/repr.rs
src/libstd/result.rs
src/libstd/rt/borrowck.rs
src/libstd/rt/mod.rs
src/libstd/rt/select.rs
src/libstd/rt/test.rs
src/libstd/rt/uv/net.rs
src/libstd/run.rs
src/libstd/str.rs
src/libstd/str/ascii.rs
src/libstd/task/local_data_priv.rs
src/libstd/task/spawn.rs
src/libstd/to_str.rs
src/libstd/trie.rs
src/libstd/unstable/extfmt.rs
src/libstd/unstable/sync.rs
src/libstd/vec.rs
src/libsyntax/abi.rs
src/libsyntax/ast_map.rs
src/libsyntax/ast_util.rs
src/libsyntax/attr.rs
src/libsyntax/codemap.rs
src/libsyntax/diagnostic.rs
src/libsyntax/ext/bytes.rs
src/libsyntax/ext/concat_idents.rs
src/libsyntax/ext/deriving/decodable.rs
src/libsyntax/ext/deriving/encodable.rs
src/libsyntax/ext/deriving/generic.rs
src/libsyntax/ext/deriving/iter_bytes.rs
src/libsyntax/ext/deriving/to_str.rs
src/libsyntax/ext/expand.rs
src/libsyntax/ext/fmt.rs
src/libsyntax/ext/pipes/liveness.rs
src/libsyntax/ext/pipes/pipec.rs
src/libsyntax/ext/pipes/proto.rs
src/libsyntax/ext/quote.rs
src/libsyntax/ext/tt/macro_parser.rs
src/libsyntax/ext/tt/macro_rules.rs
src/libsyntax/fold.rs
src/libsyntax/parse/comments.rs
src/libsyntax/parse/lexer.rs
src/libsyntax/parse/parser.rs
src/libsyntax/parse/token.rs
src/libsyntax/print/pprust.rs
src/libsyntax/util/interner.rs
src/libsyntax/visit.rs
src/test/auxiliary/cci_nested_lib.rs
src/test/bench/graph500-bfs.rs
src/test/bench/msgsend-pipes-shared.rs
src/test/bench/msgsend-pipes.rs
src/test/bench/msgsend-ring-mutex-arcs.rs
src/test/bench/msgsend-ring-pipes.rs
src/test/bench/msgsend-ring-rw-arcs.rs
src/test/bench/shootout-chameneos-redux.rs
src/test/bench/shootout-fannkuch-redux.rs
src/test/bench/shootout-fasta-redux.rs
src/test/bench/shootout-fasta.rs
src/test/bench/shootout-k-nucleotide-pipes.rs
src/test/bench/shootout-nbody.rs
src/test/bench/shootout-pfib.rs
src/test/bench/shootout-spectralnorm.rs
src/test/compile-fail/borrowck-insert-during-each.rs
src/test/compile-fail/borrowck-mut-boxed-vec.rs
src/test/compile-fail/issue-2149.rs
src/test/compile-fail/issue-2150.rs
src/test/compile-fail/issue-5100.rs
src/test/compile-fail/vec-mut-iter-borrow.rs
src/test/pretty/block-comment-wchar.pp
src/test/pretty/block-comment-wchar.rs
src/test/pretty/for-comment.rs
src/test/run-pass/auto-loop.rs
src/test/run-pass/block-arg.rs
src/test/run-pass/block-iter-1.rs
src/test/run-pass/block-iter-2.rs
src/test/run-pass/borrowck-borrow-from-at-vec.rs
src/test/run-pass/borrowck-mut-vec-as-imm-slice.rs
src/test/run-pass/borrowck-wg-borrow-mut-to-imm-3.rs
src/test/run-pass/break.rs
src/test/run-pass/coerce-reborrow-imm-vec-arg.rs
src/test/run-pass/const-vec-of-fns.rs
src/test/run-pass/deriving-cmp-generic-enum.rs
src/test/run-pass/deriving-cmp-generic-struct.rs
src/test/run-pass/deriving-cmp-generic-tuple-struct.rs
src/test/run-pass/explicit-self-closures.rs
src/test/run-pass/fn-pattern-expected-type-2.rs
src/test/run-pass/for-loop-fail.rs
src/test/run-pass/generic-static-methods.rs
src/test/run-pass/hashmap-memory.rs
src/test/run-pass/issue-2904.rs
src/test/run-pass/issue-3389.rs
src/test/run-pass/issue-3563-2.rs
src/test/run-pass/issue-3563-3.rs
src/test/run-pass/issue-4241.rs
src/test/run-pass/issue-4542.rs
src/test/run-pass/linear-for-loop.rs
src/test/run-pass/loop-scope.rs
src/test/run-pass/monad.rs
src/test/run-pass/morestack6.rs
src/test/run-pass/mutability-inherits-through-fixed-length-vec.rs
src/test/run-pass/overload-index-operator.rs
src/test/run-pass/packed-struct-vec.rs
src/test/run-pass/reflect-visit-data.rs
src/test/run-pass/reflect-visit-type.rs
src/test/run-pass/shadow.rs
src/test/run-pass/static-impl.rs
src/test/run-pass/task-comm-3.rs
src/test/run-pass/trait-bounds-in-arc.rs
src/test/run-pass/unfoldr-cross-crate.rs
src/test/run-pass/utf8.rs

index 516ca32104adf4cd9a38c465ecc17922330c1173..ce68fb4179df977e4527d7e89e86cce9f178496e 100644 (file)
@@ -1792,11 +1792,11 @@ msgstr ""
 msgid ""
 "~~~~ {.xfail-test}\n"
 "fn iter<T>(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<T, U>(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"
index 3a4e86f8c82ee6c102c94568199583e79d730f26..841e6a233935804363c05f39e35b97a945a35b35 100644 (file)
@@ -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"
index 1315dbf65b2cdf90e2405bbe2a1d7331f2a31215..fb7d60716bf6144a9cb57f7d8422c5fdee9a1d8e 100644 (file)
@@ -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"
index 415d5052a0643a849b5d266b7203c8ac7ca81d7f..2b24d688a96f6ffdcacebaecd9a96337bf8b8895 100644 (file)
@@ -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<T, U>(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<T: Printable>(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<T: Drawable>(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 ""
index f938fb79b44b4c7d96028f1fceb334e6be75b5cd..51b2786746a33996408fd6c12aa4a09f4492e8d1 100644 (file)
@@ -880,11 +880,11 @@ the function name.
 
 ~~~~ {.xfail-test}
 fn iter<T>(seq: &[T], f: &fn(T)) {
-    for seq.iter().advance |elt| { f(elt); }
+    foreach elt in seq.iter() { f(elt); }
 }
 fn map<T, U>(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);
 }
 ~~~~
index 148afb4bda9529a8fda34f292f300cd73d175c8b..b7465ddb4df7f14b68621a92c67df3e23c3ec1ea 100644 (file)
@@ -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<A, T: Iterator<A>> FromIterator<A, T> 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);
 }
 ~~~
index 2b48bd63fff3ab4748bd3ac3eb6896a6a239764c..3092dfff56e9f17d45cf77e3ae1df072690d389c 100644 (file)
@@ -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));
index b7ea5f146e4134001a5d0d3ea78a72707814e609..a8ace8558b5a64a8c076c085cf0ede2008c658f7 100644 (file)
@@ -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<T, U>(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<T: Printable>(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<T: Drawable>(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(); }
 }
 ~~~~
 
index 894a372ac649358ff458d09b2133a7d06912a3ec..4b9a48ed445365460af324d20d01764207b2dc36 100644 (file)
@@ -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; }
     }
 
index ac87eabc0fddba056858d143d3fc6d2444eda4aa..48c467c34b6de2b337e8f4a3a3e909f7dfec52e6 100644 (file)
@@ -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();
index aa074f42974de0739bf46163adca8181752e3c52..f984473a4c7ac16af4d4ae23f88ebb8ddad9c4c0 100644 (file)
@@ -283,7 +283,7 @@ fn debugger() -> ~str { ~"gdb" }
         // 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 prefix_matches( line : &str, prefix : &str ) -> bool {
     //    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")) {
 
index d4bf1d480ed79219b4f8fb1479316638ad1befb6..9e622b78fff4a9a5b014cf0293f871345d590da7 100644 (file)
@@ -789,7 +789,7 @@ fn test_rw_arc() {
         }
 
         // Wait for children to pass their asserts
-        for children.iter().advance |r| {
+        foreach r in children.iter() {
             r.recv();
         }
 
index 37d95d622c0830094888d0f98be02478e4d648ff..5061dbf401b37f898bf264644c7c229f81e589f0 100644 (file)
@@ -206,7 +206,7 @@ fn from_base64(&self) -> Result<~[u8], ~str> {
         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;
 
index 90824a653faad2d82315554d7d3c48f8a94491e9..4d2d5635effe93541bcabacb438d36592cac40dc 100644 (file)
@@ -398,7 +398,7 @@ pub fn is_true(&self) -> bool {
       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 @@ pub fn is_false(&self) -> bool {
       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 @@ pub fn to_bools(&self) -> ~[bool] {
      */
      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 @@ fn nbits(mut w: uint) -> uint {
         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 @@ fn each_outlier(&self, other: &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 @@ fn test_bitv_iterator() {
         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 @@ fn bench_btv_small_iter(b: &mut BenchHarness) {
         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 @@ fn bench_bitv_big_iter(b: &mut BenchHarness) {
         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 @@ fn bench_bitvset_iter(b: &mut BenchHarness) {
                                               |idx| {idx % 3 == 0}));
         do b.iter {
             let mut sum = 0;
-            for bitv.iter().advance |idx| {
+            foreach idx in bitv.iter() {
                 sum += idx;
             }
         }
index 7b072b7cd467d1a4eff249c95d148847c35f512f..0ca992fdacd53be44afb9386b9c2ec47ad38ac5b 100644 (file)
@@ -91,7 +91,7 @@ pub fn find_rand_n<M:MutableMap<uint,uint>>(n: uint,
         let mut rng = rand::XorShiftRng::new();
         let mut keys = vec::from_fn(n, |_| rng.gen::<uint>() % n);
 
-        for keys.iter().advance() |k| {
+        foreach k in keys.iter() {
             map.insert(*k, 1);
         }
 
index 92507f9ca884dab5aacdf53ac08e17dcb70577c1..0efd88fdf504310b7189a1ca0803eaa8c5ea346f 100644 (file)
@@ -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');
index dbc65754266dc272b45b13b88639f31bf4c645b9..7ede1978495c6149be9f2ac46abf21c62309234b 100644 (file)
@@ -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 @@ fn a_million_letter_a() -> ~str {
         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 @@ fn a_million_letter_a() -> ~str {
 
 
         // 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 {
index dfefe9779d124d3f69ecd7a401e51b18d9bb621a..27612b00f610a1d4945178f548d76d788b19e680 100644 (file)
@@ -939,7 +939,7 @@ struct Test {
 
     fn test_hash<D: Digest>(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 @@ fn test_hash<D: Digest>(sh: &mut D, tests: &[Test]) {
         }
 
         // 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 {
index 88159ce55525687a084e9707ca07aea8cf880973..c684ff14615c732e71f65b25b3b4b24271b97fb6 100644 (file)
@@ -548,7 +548,7 @@ fn from_iterator(iterator: &mut T) -> DList<A> {
 
 impl<A, T: Iterator<A>> Extendable<A, T> for DList<A> {
     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 @@ fn test_append() {
         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 @@ fn test_prepend() {
         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 @@ fn test_rotate() {
     #[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 @@ fn test_iterator_double_end() {
     #[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 @@ fn test_rev_iter() {
     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 @@ fn test_insert_ordered() {
     #[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 @@ fn fuzz_test(sz: int) {
         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);
         }
index d7cf217fbecd3f1c063c4685c2d151095471bee6..04bddeccf127a759cce11b301ef88aa8e2f1dff1 100644 (file)
@@ -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 @@ fn test_fileinput_read_byte() {
             |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 @@ fn test_fileinput_read() {
             |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 @@ fn test_input_vec() {
             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 @@ fn test_input_vec_state() {
             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 @@ fn test_next_file() {
             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);
index e2543017a8d6805fd2b7ac55fb0f05a0ccf70b7b..b0e6f82322b6110f7204a77f6930cb1eabee546a 100644 (file)
@@ -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 fn usage(brief: &str, opts: &[OptGroup]) -> ~str {
 
             // 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(' ');
             }
index ad8dcf98317a45dcec1b6cf4b60dec65178d709d..3552ff59783a936ce6dcf2503d5d5b30d010af73 100644 (file)
@@ -27,7 +27,7 @@
 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());
 }
 ~~~
index 4cd67d6ebacf3587e50d58f610904c76ecb50e31..f0d5b336e308397b5471f7e6585d5fafc262b03a 100644 (file)
@@ -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 @@ fn read_float(&mut self) -> float {
     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 @@ fn read_enum_variant<T>(&mut self,
         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 @@ fn read_seq<T>(&mut self, f: &fn(&mut Decoder, uint) -> T) -> T {
         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 @@ fn read_map<T>(&mut self, f: &fn(&mut Decoder, uint) -> T) -> T {
         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 @@ fn lt(&self, other: &Json) -> bool {
                         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 @@ fn to_json(&self) -> Json { List(self.map(|elt| elt.to_json())) }
 impl<A:ToJson> 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 @@ fn to_json(&self) -> Json {
 impl<A:ToJson> 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 @@ struct Outer {
     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()); },
             }
index 46a744572749144de0fdc132721f453ea18cff2e..453ad857a05688dcd313390fdf4435cc4d9ea062 100644 (file)
@@ -131,7 +131,7 @@ fn cmp(&self, other: &BigUint) -> Ordering {
         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 @@ fn div_estimate(a: &BigUint, b: &BigUint, n: uint)
             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 @@ fn convert_base(n: BigUint, base: uint) -> ~[BigDigit] {
         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 @@ pub fn to_uint(&self) -> uint {
 
         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 @@ fn check(slice: &[BigDigit], data: &[BigDigit]) {
     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 @@ fn check(v: ~[BigDigit], u: uint) {
 
     #[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 @@ fn test_add() {
 
     #[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 @@ fn test_sub() {
 
     #[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 @@ fn test_mul() {
             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 @@ fn test_mul() {
 
     #[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 @@ fn test_div_rem() {
             }
         }
 
-        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 @@ fn to_str_pairs() -> ~[ (BigUint, ~[(uint, ~str)]) ] {
     #[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 @@ fn test_to_str_radix() {
     #[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 @@ fn check(inp_s: Sign, inp_n: uint, ans_s: Sign, ans_n: uint) {
     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 @@ fn check(b: BigInt, u: uint) {
 
     #[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 @@ fn test_add() {
 
     #[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 @@ fn test_sub() {
 
     #[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 @@ fn test_mul() {
             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 @@ fn check(a: &BigInt, b: &BigInt, d: &BigInt, m: &BigInt) {
             }
         }
 
-        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 @@ fn check(a: &BigInt, b: &BigInt, d: &BigInt, m: &BigInt) {
             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 @@ fn check(a: &BigInt, b: &BigInt, q: &BigInt, r: &BigInt) {
             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 @@ fn check(a: &BigInt, b: &BigInt, q: &BigInt, r: &BigInt) {
             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);
index 00224f8b06d985cca8b000684352166b0e972dc2..82b0808b788c0cb3f47206a6e8d311297de142e7 100644 (file)
@@ -239,14 +239,14 @@ fn test(c: Complex, ns: float) {
     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 @@ fn test(c: Complex) {
             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 @@ fn test_add() {
             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 @@ fn test_sub() {
             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 @@ fn test_mul() {
             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 @@ fn test_mul() {
         #[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 @@ fn test_div() {
         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);
             }
         }
index ff14009e5561a47fa2a4f3a7f8495b4298438f51..af09ba42b807e03d151f4a3d1e4fb6e9119821c4 100644 (file)
@@ -500,7 +500,7 @@ fn test(s: &str) {
         }
 
         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 @@ fn test(s: &str) {
         }
 
         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);
         }
     }
index 1c92a4f34e524503da3759c48c1537e7a346946e..9873ab3d858dca972294008560242ddca071c635 100644 (file)
@@ -206,7 +206,7 @@ fn extend(&mut self, iter: &mut Iter) {
         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 @@ fn test_iterator() {
         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 @@ fn test_from_iter() {
 
         let mut q: PriorityQueue<uint> = xs.rev_iter().transform(|&x| x).collect();
 
-        for xs.iter().advance |&x| {
+        foreach &x in xs.iter() {
             assert_eq!(q.pop(), x);
         }
     }
index 92183f22d3b27df96695e602ee4a9910478e2621..e2950293719b376a6df102b9e7602604f5f98eec 100644 (file)
@@ -39,7 +39,7 @@ fn len(&self) -> uint { self.nelts }
 impl<T> Mutable for RingBuf<T> {
     /// 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 @@ fn from_iterator(iterator: &mut T) -> RingBuf<A> {
 
 impl<A, T: Iterator<A>> Extendable<A, T> for RingBuf<A> {
     fn extend(&mut self, iterator: &mut T) {
-        for iterator.advance |elt| {
+        foreach elt in *iterator {
             self.push_back(elt);
         }
     }
@@ -653,7 +653,7 @@ fn test_mut_iter() {
             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 @@ fn test_mut_rev_iter() {
             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 @@ fn test_from_iterator() {
 
         let mut seq = iterator::Counter::new(0u, 2).take_(256);
         let deq: RingBuf<uint> = 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);
index 600c7c10fec2e3e9c70df16ee7ffda9a4f35fef2..0c8821e753e3a71cd6b2771424638bf0316ea77f 100644 (file)
@@ -444,7 +444,7 @@ fn decode(d: &mut D) -> @mut T {
 impl<'self, S:Encoder,T:Encodable<S>> Encodable<S> 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 @@ fn encode(&self, s: &mut S) {
 impl<S:Encoder,T:Encodable<S>> Encodable<S> 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 @@ fn decode(d: &mut D) -> ~[T] {
 impl<S:Encoder,T:Encodable<S>> Encodable<S> 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<S> for DList<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));
             }
         }
@@ -693,7 +693,7 @@ impl<
 > Encodable<S> for RingBuf<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));
             }
         }
@@ -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<S:Encoder> EncoderHelpers for S {
     fn emit_from_vec<T>(&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)
                 }
index 11b093dd884974da988e1367491f69bda0891d81..eba9e1a4ed15a4f3743e864094fb5be7f25c918b 100644 (file)
@@ -447,7 +447,7 @@ fn test_mut_iterator() {
         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 @@ fn test_mut_rev_iterator() {
         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 @@ fn test_consume() {
         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);
index 57d8563861e353dd9cded407f8b8154938853ee5..9cce19da524d7264b79f65e1bcaadadfe892159a 100644 (file)
@@ -733,7 +733,7 @@ fn copy_vec<T:Clone>(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 @@ fn test_simple() {
         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);
index b891d022292373c781addf3288d2dbc9d9a71cc8..69d0a343424a75a2c77ace571f84590aa7a40a74 100644 (file)
@@ -167,7 +167,7 @@ fn var(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 {
index cd3db1b3a2898268319bf6d0666a12714fcc86be..dc26d1e36ce130706fb241f688c4ad5e3c50b106 100644 (file)
@@ -989,13 +989,13 @@ fn test_mutex_cond_broadcast_helper(num_waiters: uint) {
         }
 
         // 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 @@ fn test_mutex_killed_broadcast() {
                     }
                 }
             }
-            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 @@ fn test_mutex_killed_broadcast() {
         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 @@ fn lock_cond(x: &RWLock, downgrade: bool, blk: &fn(c: &Condvar)) {
         }
 
         // 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() {
index edd16fe88f425196b0ad96201caf98858d90ffc3..523e11e810c8747bf8ea058adb3fb3e192ae1852 100644 (file)
@@ -35,7 +35,7 @@ pub struct TaskPool<T> {
 #[unsafe_destructor]
 impl<T> Drop for TaskPool<T> {
     fn drop(&self) {
-        for self.channels.iter().advance |channel| {
+        foreach channel in self.channels.iter() {
             channel.send(Quit);
         }
     }
index 114ab6702ae24b2fa7f2a5a426c2790d571ce785..3669c1ea0a3579a71061e253e032839fdbfbc7be 100644 (file)
@@ -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 @@ fn test_param_stack_failure_conditions() {
         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 @@ fn test_param_stack_failure_conditions() {
                     "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 @@ fn test_push_bad_param() {
     #[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());
index e56b3b6bcf4c830e4e3f384e50db2d26eb193f39..a6ed88fa559f1a2629696ad67aa671900efa2ddd 100644 (file)
@@ -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;
index 15aeeb3e65442422889afddec9e5d7b752c4ad5f..175cf836c477d5e5540e2f98c514130f9849f068 100644 (file)
@@ -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);
index 984a4d3a543521dd4eb30cc39991b0f2aac90792..37d833cc82496adf1075d565ce76b8aba1b7e398 100644 (file)
@@ -430,11 +430,11 @@ pub fn write_log(&self, test: &TestDesc, result: &TestResult) {
     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 @@ pub fn write_metric_diff(&self, diff: &MetricDiff) {
         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 @@ fn callback(event: &TestEvent, st: &mut ConsoleTestState) {
                     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 @@ pub fn save(&self, p: &Path) {
     pub fn compare_to_old(&self, old: &MetricMap,
                           noise_pct: Option<f64>) -> 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 @@ pub fn compare_to_old(&self, old: &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 @@ pub fn auto_bench(&mut self, f: &fn(&mut BenchHarness)) -> stats::Summary {
         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 @@ pub fn auto_bench(&mut self, f: &fn(&mut BenchHarness)) -> stats::Summary {
             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 @@ pub fn sort_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 @@ fn testfn() { }
 
         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());
index b07c18f0e4d908351f11cb172fc196044d4d8ef8..6595904a082c786e44818eeead2e4199d2f56c7b 100644 (file)
@@ -260,7 +260,7 @@ pub fn rfc3339(&self) -> ~str {
 priv fn do_strptime(s: &str, format: &str) -> Result<Tm, ~str> {
     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 @@ fn test(s: &str, format: &str) -> bool {
             ~"Friday",
             ~"Saturday"
         ];
-        for days.iter().advance |day| {
+        foreach day in days.iter() {
             assert!(test(*day, "%A"));
         }
 
@@ -1054,7 +1052,7 @@ fn test(s: &str, format: &str) -> bool {
             ~"Fri",
             ~"Sat"
         ];
-        for days.iter().advance |day| {
+        foreach day in days.iter() {
             assert!(test(*day, "%a"));
         }
 
@@ -1072,7 +1070,7 @@ fn test(s: &str, format: &str) -> bool {
             ~"November",
             ~"December"
         ];
-        for months.iter().advance |day| {
+        foreach day in months.iter() {
             assert!(test(*day, "%B"));
         }
 
@@ -1090,7 +1088,7 @@ fn test(s: &str, format: &str) -> bool {
             ~"Nov",
             ~"Dec"
         ];
-        for months.iter().advance |day| {
+        foreach day in months.iter() {
             assert!(test(*day, "%b"));
         }
 
index 6148e14b79f3fe9e627d1ce1d060e827db0b8637..50ad5c77fbac9f766e3bb9c55e5232333ef03bdd 100644 (file)
@@ -674,7 +674,7 @@ fn remove<K: TotalOrd, V>(node: &mut Option<~TreeNode<K, V>>,
     fn heir_swap<K: TotalOrd, V>(node: &mut ~TreeNode<K, V>,
                                  child: &mut Option<~TreeNode<K, V>>) {
         // *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 heir_swap<K: TotalOrd, V>(node: &mut ~TreeNode<K, V>,
                 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 @@ fn from_iterator(iter: &mut T) -> TreeMap<K, V> {
 impl<K: TotalOrd, V, T: Iterator<(K, V)>> Extendable<(K, V), T> for TreeMap<K, V> {
     #[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 @@ pub fn from_iterator(iter: &mut Iter) -> TreeSet<T> {
 impl<T: TotalOrd, Iter: Iterator<T>> Extendable<T, Iter> for TreeSet<T> {
     #[inline]
     fn extend(&mut self, iter: &mut Iter) {
-        for iter.advance |elem| {
+        foreach elem in *iter {
             self.insert(elem);
         }
     }
@@ -863,13 +863,13 @@ fn u8_map() {
     fn check_equal<K: Eq + TotalOrd, V: Eq>(ctrl: &[(K, V)],
                                             map: &TreeMap<K, V>) {
         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 @@ fn test_iterator() {
         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 @@ fn test_lazy_iterator() {
                         (&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 @@ fn test_lazy_iterator() {
             }
         }
 
-        for b.advance |x| {
+        foreach x in b {
             assert_eq!(expected[i], x);
             i += 1;
         }
@@ -1111,7 +1111,7 @@ fn test_from_iter() {
 
         let map: TreeMap<int, int> = 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 @@ fn test_iterator() {
         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 @@ fn check(a: &[int], b: &[int], expected: &[int],
         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 @@ fn test_from_iter() {
 
         let set: TreeSet<int> = xs.iter().transform(|&x| x).collect();
 
-        for xs.iter().advance |x: &int| {
+        foreach x in xs.iter() {
             assert!(set.contains(x));
         }
     }
index af8d5e17a7c7bde2c15b02594f965938661462e8..9b4bf9d0ad4d8ba7e962351275bd2e11e2858240 100644 (file)
@@ -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 @@ enum State {
     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' | '&' |'\'' | '(' | ')' | '.'
           | '@' | ':' | '%' | '/' | '+' | '!' | '*' | ',' | ';' | '='
index 13a8ad36388d4acdf5a343eee12cf08aa7f824b4..4cfe77273541a2435b6fd61c180b243e9c76abeb 100644 (file)
@@ -287,7 +287,7 @@ fn is_fresh(&self, cat: &str, kind: &str,
     }
 
     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;
             }
index 746b75292315aecc52766e843ad45371eccc98cc..0d2148c4a12337718cca2f49895112e65bb7e4d4 100644 (file)
@@ -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()) },
index d932dc80d518742c847b5884217b6a2c23ddd4c7..02cb7f168ce7b34862b40c014ac6ddb2f1c69e38 100644 (file)
@@ -141,7 +141,7 @@ pub fn exec(sess: Session,
 
             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 @@ fn provided_link_metas(sess: Session, c: &ast::Crate) ->
         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 @@ fn hash(symbol_hasher: &mut hash::State, m: &@ast::MetaItem) {
               }
               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 @@ fn hash(symbol_hasher: &mut hash::State, m: &@ast::MetaItem) {
         }
 
         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 @@ fn unlib(config: @session::config, stem: ~str) -> ~str {
 
     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 @@ fn unlib(config: @session::config, stem: ~str) -> ~str {
     }
 
     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 @@ fn unlib(config: @session::config, stem: ~str) -> ~str {
     // 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);
index 7b4db63c6ed7a3b244469c6a4c9c76ff4147ef27..831719135b13d9f365ba30966e7061c46ccf6723 100644 (file)
@@ -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 @@ pub fn list_passes() {
 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!();
index c56ed34309c76ea93800d80e61990e5df9aac915..0bfbe1a80c5e71f32e72f9702ecc232c4f1a72ef 100644 (file)
@@ -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());
         }
index 3a315ef952d70fffcde94261a187e582886c883b..f4fb65c2a836c52b624ec5ca6e3e7b6279d3c4d3 100644 (file)
@@ -508,7 +508,7 @@ fn ann_identified_post(node: pprust::ann_node) {
 }
 
 pub fn get_os(triple: &str) -> Option<session::os> {
-    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 @@ pub fn get_os(triple: &str) -> Option<session::os> {
     ("freebsd", session::os_freebsd)];
 
 pub fn get_arch(triple: &str) -> Option<abi::Architecture> {
-    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; }
         }
index 8694c10053c02f3d82c947ae87e3c39df925725f..2730858d498bbcdf0bd3387e20ee518eba499b52 100644 (file)
@@ -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));
     }
 
index cbf1494e4508dbc1f8e3c5c1e83af7cdda0ed893..1ce6f664c27ca283d4ffb82f374d11d8600fdfc9 100644 (file)
@@ -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<int> {
-    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);
index bc4236d33956e8e994a500e6e1e0870d3079ed91..b69b2f8067d0c405cd91d23cd0d57884754433ae 100644 (file)
@@ -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);
     }
 
index 3a8b9a27f1cac8aba0fef868d01eff8eb15edf92..6086758524814ffae3a5b3aa3f2714d903a9872d 100644 (file)
@@ -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));
index 90604cf36cb5ca14bbdc3c30e7703bb8ee92909d..9f67d922c11ad422f5efdb41b969fcef238115d8 100644 (file)
@@ -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<ty::t>) {
-    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_elt(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<def_id>) {
-    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 add_to_index_(item: @item, ebml_w: &writer::Encoder,
         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 add_to_index_(item: @item, ebml_w: &writer::Encoder,
         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 add_to_index_(item: @item, ebml_w: &writer::Encoder,
         /* 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 add_to_index_(item: @item, ebml_w: &writer::Encoder,
             }
             _ => {}
         }
-        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 add_to_index_(item: @item, ebml_w: &writer::Encoder,
         // 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 add_to_index_(item: @item, ebml_w: &writer::Encoder,
         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 add_to_index_(item: @item, ebml_w: &writer::Encoder,
             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 add_to_index_(item: @item, ebml_w: &writer::Encoder,
 
         // 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<T:Clone + Hash + IterBytes + 'static>(
                 -> ~[@~[entry<T>]] {
     let mut buckets: ~[@mut ~[entry<T>]] = ~[];
     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<T:'static>(
     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<T:'static>(
     }
     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_link_attr(ecx: &EncodeContext, items: ~[@MetaItem]) ->
 
     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 get_ordered_deps(ecx: &EncodeContext, cstore: &cstore::CStore)
 
         // 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 get_ordered_deps(ecx: &EncodeContext, cstore: &cstore::CStore)
     // 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;
             }
index 7ac215e3949eee20d630b1fff6533c36f568f582..9891adc3b1b38c6b382c37f08308496fcd670f83 100644 (file)
@@ -91,7 +91,7 @@ pub fn search<T>(filesearch: @FileSearch, pick: pick<T>) -> Option<T> {
     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() {
index 1037e3a762879c223263638351ba004147a3a7c5..89a53df731695f46b221395b507a23a79303abd7 100644 (file)
@@ -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)));
     }
 }
index a1cb1bf68486e4bce2d3babc6d3eff47b77606ac..b80af865e43737820b9c4b8011c5d219435e9510 100644 (file)
@@ -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);
     }
index 31f0f67caf25bce01018de06863013a521e1ede7..74ef9612500c6b61306e3fdb460a5c12670b940b 100644 (file)
@@ -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| {
index 7fde3f924ca46894d926e3d0e6cbfbcfb97dea10..b9f9d7c45f5d1da870bf0864b504040de1fb3fcc 100644 (file)
@@ -118,7 +118,7 @@ pub fn each_in_scope_restriction(&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 @@ pub fn check_for_conflicting_loans(&self, scope_id: ast::NodeId) {
         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 @@ pub fn report_error_if_loan_conflicts_with_restriction(&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_captured_variables(this: CheckLoanCtxt,
                                 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);
               }
           }
index e942efbc534a82f0b82200a7d862c9a68862c7e7..7c24b30743d21590895e8086612f7aa64f0d9122 100644 (file)
@@ -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;
index dc120516deaaec2df20da5e8d17e1b25383982ac..4c4a5648c8b4dc201178fb578f711f6ef3881250 100644 (file)
@@ -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 @@ fn gather_fn_arg_patterns(&mut self,
          */
 
         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(
index e568da5eedfae98a65ffa90c25c8e09745c1b94b..9e4e85c3a5e536edcf034b9da5c1f49b82375b60 100644 (file)
@@ -139,7 +139,7 @@ fn restrict(&self,
                 // 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 @@ fn restrict(&self,
                 //
                 //    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 @@ fn restrict(&self,
                 //    }
                 //    ...
                 //    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) {
index 13ee902390b3bb20ea28f20b8dc4080364fd31f7..8ddf1a6c1d8174b78f88997f27c522969ff8153c 100644 (file)
@@ -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);
             }
index 223b18bfa7e5006693a988355716a2096c69c373..07c8b7ad06c7faba57f92e203afa9f48cb621c8a 100644 (file)
@@ -371,22 +371,22 @@ fn add_gen_kills(&self,
          * 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 @@ fn add_gen_kills(&self,
         }
 
         // 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 @@ pub fn each_move_of(&self,
                 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`
index a262aa5445e74f6f2c8263657531b7d7bcfe388c..c1a44cc56da2342b0f1f3df86cb51fa3b6ca1a06 100644 (file)
@@ -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 @@ fn pats_any(&mut self,
             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 @@ fn expr(&mut self, expr: @ast::expr, pred: CFGIndex) -> CFGIndex {
 
                 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 @@ fn add_node(&mut self, id: ast::NodeId, preds: &[CFGIndex]) -> CFGIndex {
         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 @@ fn find_scope(&self,
             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;
                             }
index bb6736b3de9e083ec24b002ad0e6a4b0f528869a..11d2268725de188c16a8234462f0b8db65dc859f 100644 (file)
@@ -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));
             }
         }
index 987443de30dc3ee7f829aa3b5d27b6da0b5a75ab..e52c0b949dcc7cc58195734e48d9f82b304a56e5 100644 (file)
@@ -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 {
index cdf887f464367b1f355bfb91fa45bf47c3bf809e..957a59cdaa0bfa9dd9f6a334cf41ce210d5eafb7 100644 (file)
@@ -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;
             }
index 8bc2c145eb36b6ccba5db25a6d3ac1b5285525a2..44ebca8c1bf365f0748d924f748100339feb4840 100644 (file)
@@ -266,7 +266,7 @@ fn each_bit(&self,
                 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 @@ fn walk_block(&mut self,
 
         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 @@ fn walk_expr(&mut self,
                         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 @@ fn walk_expr(&mut self,
                 // 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 @@ fn walk_expr(&mut self,
             }
 
             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 @@ fn walk_expr(&mut self,
             }
 
             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 @@ fn walk_exprs(&mut self,
                   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 @@ fn walk_opt_expr(&mut self,
                      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 @@ fn walk_pat_alternatives(&mut self,
         // 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 @@ fn is_method_call(&self, expr: @ast::expr) -> bool {
 
     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);
index 17d7b6e828e757e7c514337c00a4e344d36d9dc3..73ead06bf076e9bf4b598a8e54b6077f792dfe5d 100644 (file)
@@ -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'");
                 }
             }
index e37df6eda2d84036144bde6e5371686114b89612..afb0254ac1b975d228cccd61f6659e66f17c6af9 100644 (file)
@@ -251,7 +251,7 @@ pub fn iterate_until_fixed_point(&self,
         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);
             }
         }
index 715ebc48a6fc9b36d43354353ad8a62b5c673c23..a992e9fb0f04148cb337614d73a47fb5ec92aedb 100644 (file)
@@ -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<Context>)) {
     };
     {
         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<Context>)) {
                       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<Context>)) {
     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)
               }
           }
index 54e7a2fd7e72b8e8655f35d57594bb2e3b45cabe..0c54da66d73835ae3806c8cb841b440ce40a90da 100644 (file)
@@ -412,7 +412,7 @@ pub fn collect_local_language_items(&mut 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),
index 1f01ad7a282f2d286bd44b36b24a4f311ab74b1f..cb1ceef18ed31ca79991d380d49b54f46720312d 100644 (file)
@@ -284,7 +284,7 @@ enum LintSource {
  */
 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 @@ fn set_level(&mut self, lint: lint, level: level, src: LintSource) {
     }
 
     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 @@ fn span_lint(&self, lint: lint, span: span, msg: &str) {
             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 @@ fn process(@mut self, n: AttributedNode) {
         // 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 @@ fn process(@mut self, n: AttributedNode) {
             // 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_ty(cx: &Context, ty: &ast::Ty) {
     }
 
     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_foreign_fn(cx: &Context, decl: &ast::fn_decl) {
 
     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_case(cx: &Context, sort: &str, ident: ast::ident, span: span) {
         }
         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 check_pat(cx: &Context, p: @ast::pat) {
     }
 
     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 check_attrs(cx: @mut Context, attrs: &[ast::Attribute],
                 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",
index 9c97daec8e7a8e6206247fc0b00f7ae6a276b4f7..a5335d209fa5fd4ec715953a3758ab7bb6c66ba0 100644 (file)
@@ -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 @@ pub fn propagate_through_expr(&self, expr: @expr, succ: LiveNode)
             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 @@ pub fn should_warn(&self, var: Variable) -> Option<@str> {
     }
 
     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 @@ pub fn warn_about_unused(&self,
                              -> 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 @@ pub fn warn_about_dead_assign(&self,
                                   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));
             }
index a875381cc433a41ecde5d3cc134b698e0b9ecdca..059f3a05d9c71dfa6d69ff212b37833c08ba8f59 100644 (file)
@@ -907,7 +907,7 @@ pub fn cat_pattern(&self,
                         }
                     };
 
-                    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 @@ pub fn cat_pattern(&self,
                 }
                 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 @@ pub fn cat_pattern(&self,
                     }
                 }
                 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 @@ pub fn cat_pattern(&self,
 
           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 @@ pub fn cat_pattern(&self,
 
           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 @@ pub fn cat_pattern(&self,
 
           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);
                 }
index eaa7970cfe42eebec3780d17c4fa883d44f56185..a31003d8a16cb304700d028d629b689d6e3a042f 100644 (file)
@@ -231,7 +231,7 @@ fn compute_modes_for_local<'a>(local: @Local,
                                (cx, v): (VisitContext,
                                          vt<VisitContext>)) {
     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<VisitContext>)) {
-    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<VisitContext>) {
-        for exprs.iter().advance |expr| {
+        foreach expr in exprs.iter() {
             self.consume_expr(*expr, visitor);
         }
     }
@@ -289,11 +289,11 @@ pub fn consume_block(&self, blk: &Block, visitor: vt<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 @@ pub fn use_expr(&self,
                     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 @@ pub fn use_expr(&self,
             }
 
             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 @@ pub fn use_expr(&self,
             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 @@ pub fn use_expr(&self,
             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 @@ pub fn use_expr(&self,
             }
 
             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 @@ pub fn use_expr(&self,
             }
 
             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 @@ pub fn use_overloaded_operator(&self,
 
         // 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 @@ pub fn use_overloaded_operator(&self,
     }
 
     pub fn consume_arm(&self, arm: &arm, visitor: vt<VisitContext>) {
-        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 @@ pub fn use_fn_args(&self,
                        arg_exprs: &[@expr],
                        visitor: vt<VisitContext>) {
         //! 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 @@ pub fn arms_have_by_move_bindings(&self,
                                       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);
index 521eb8a95b0b6fb1542cc4499f6dfbecc54fd0ca..d5855dac177b90ebaf79286579ee3e96aa41562b 100644 (file)
@@ -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 @@ struct variant \
                         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 @@ struct variant \
                                     !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");
index 1d9708bb82d2d8e2d8bfc3d4ae49661689eeb818..681fc0316cafadfb8e1bf64b3d6b6c51d3c97b81 100644 (file)
@@ -136,7 +136,7 @@ fn mark_public_symbols(&self, crate: @Crate) {
                     }
                     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 @@ fn mark_public_symbols(&self, crate: @Crate) {
                         };
 
                         // 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 @@ fn mark_public_symbols(&self, crate: @Crate) {
                         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 @@ fn mark_public_symbols(&self, crate: @Crate) {
                         } 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 @@ fn mark_public_symbols(&self, crate: @Crate) {
                     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);
index d1c32bfd4b7b3537dceeadcb64e4043e53f2cd38..0a50a88a6ed40dec449c7b9c15d8119b722c4f2c 100644 (file)
@@ -198,7 +198,7 @@ pub fn sub_free_region(&self, sub: FreeRegion, sup: FreeRegion) -> bool {
         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 @@ fn ancestors_of(this: &RegionMaps, scope: ast::NodeId)
 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,
index ba11476204a8a157aba03e0e2425c89f408e8632..b92960a49fac0075cf8172283277c3f0ee8b3bfe 100644 (file)
@@ -1037,7 +1037,7 @@ pub fn add_child(@mut self,
                              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 @@ pub fn block_needs_anonymous_module(@mut self, block: &Block) -> bool {
         }
 
         // 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 @@ pub fn build_reduced_graph_for_item(@mut self,
                 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 @@ pub fn build_reduced_graph_for_item(@mut self,
                         };
 
                         // 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 @@ pub fn build_reduced_graph_for_item(@mut self,
 
                 // 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 @@ pub fn build_reduced_graph_for_item(@mut self,
                 }
 
                 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 @@ pub fn build_reduced_graph_for_view_item(@mut self,
         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 @@ pub fn build_reduced_graph_for_view_item(@mut self,
                             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 @@ pub fn build_reduced_graph_for_view_item(@mut self,
 
                         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 @@ pub fn build_reduced_graph_for_view_item(@mut self,
                                                         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 @@ pub fn handle_external_def(@mut self,
               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 @@ trait method '%s'",
                       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 @@ pub fn build_reduced_graph_for_external_crate(@mut self,
             // 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 @@ pub fn build_reduced_graph_for_external_crate(@mut self,
                                     // 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 @@ pub fn resolve_imports_for_module(@mut self, module: @mut Module) {
     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 @@ pub fn resolve_glob_import(@mut self,
         };
 
         // 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 @@ pub fn add_exports_for_module(@mut self,
                 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 @@ pub fn resolve_item(@mut self, item: @item, visitor: ResolveVisitor) {
             // 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 @@ pub fn resolve_item(@mut self, item: @item, visitor: ResolveVisitor) {
                                                  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 @@ pub fn resolve_item(@mut self, item: @item, visitor: ResolveVisitor) {
                                     &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 @@ pub fn resolve_item(@mut self, item: @item, visitor: ResolveVisitor) {
 
             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 @@ pub fn with_type_parameter_rib(@mut self,
                 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 @@ pub fn resolve_function(@mut self,
                     // 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 @@ pub fn resolve_function(@mut self,
     pub fn resolve_type_parameters(@mut self,
                                    type_parameters: &OptVec<TyParam>,
                                    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 @@ pub fn resolve_struct(@mut self,
                           fields: &[@struct_field],
                           visitor: ResolveVisitor) {
         let mut ident_map = HashMap::new::<ast::ident, @struct_field>();
-        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 @@ pub fn resolve_struct(@mut self,
             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 @@ pub fn resolve_implementation(@mut self,
                     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 @@ pub fn resolve_implementation(@mut self,
             // 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 @@ pub fn binding_mode_map(@mut self, pat: @pat) -> BindingMap {
     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 @@ pub fn check_consistent_bindings(@mut self, arm: &arm) {
                 }
             }
 
-            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 @@ pub fn resolve_arm(@mut self, arm: &arm, visitor: ResolveVisitor) {
         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 @@ pub fn resolve_type(@mut self, ty: &Ty, visitor: ResolveVisitor) {
                 }
 
                 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 @@ pub fn resolve_type(@mut self, ty: &Ty, visitor: ResolveVisitor) {
 
             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 @@ struct in scope",
                     }
 
                     // 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 @@ struct in scope",
                     }
 
                     // 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 @@ struct in scope",
                     }
 
                     // 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 @@ pub fn resolve_path(@mut self,
                         visitor: ResolveVisitor)
                         -> Option<def> {
         // 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 @@ pub fn resolve_definition_of_name_in_module(@mut self,
 
     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 @@ pub fn find_best_match_for_name(@mut self,
         }
 
         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 @@ pub fn name_exists_in_scope_struct(@mut self, name: &str) -> bool {
           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 @@ pub fn search_for_traits_containing_method(@mut self, name: ident)
                 // 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 @@ pub fn check_for_item_unused_imports(&mut self, vi: &view_item) {
         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 @@ pub fn check_for_item_unused_imports(&mut self, vi: &view_item) {
                         }
 
                         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 @@ pub fn dump_module(@mut self, module_: @mut Module) {
         }
 
         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 = ~""; }
index 9668f1ec46e3d36eee18046ceebbacbc3f028ce2..8a8dfbc8fb926560baa7f5b776fb8a3e81040b40 100644 (file)
@@ -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 @@ fn add_to_set(tcx: ty::ctxt, set: &mut ~[Opt], val: 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 @@ fn score(p: &ast::pat) -> 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);
             }
index 70b204621b082a91fa01ce4c8c7a4f9f0f04507a..6c37fd18f69e88ba55ee1f3b4e96a129bffd20dc 100644 (file)
@@ -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;
index 323b649f81f312774985ab4a4c1d315b22b79b15..2c7e3ae0043c0f42c0986b80a0a179137caf7334 100644 (file)
@@ -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);
index 42221cb08b6a8528b55b81c806ea5bd0d0954bcf..3154972faa665264eaf4c3a5cd0452070d87cb7f 100644 (file)
@@ -675,7 +675,7 @@ fn iter_variant(cx: @mut Block, repr: &adt::Repr, av: ValueRef,
         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 @@ fn iter_variant(cx: @mut Block, repr: &adt::Repr, av: ValueRef,
       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 @@ fn iter_variant(cx: @mut Block, repr: &adt::Repr, av: ValueRef,
       }
       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 @@ fn iter_variant(cx: @mut Block, repr: &adt::Repr, av: ValueRef,
                                         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<NodeInfo>,
 }
 
 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<NodeInfo>,
                         sp: Option<span>)
                      -> @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<A:IdAndTy>(
 
     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<A:IdAndTy>(
 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);
         }
     }
index be9d5a6c118b8b2cd8337e45ac01e5d45d05ac42..9d44dacfd68542faea349d41682dbb98e540b4a5 100644 (file)
@@ -516,7 +516,7 @@ pub fn gepi(&self, base: ValueRef, ixs: &[uint]) -> ValueRef {
         // 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()))
index d6215cd60af32be1824212aa4cdda952fa1c4ca0..2fcdf885aadcb8684353ac86092e19406163a5b2 100644 (file)
@@ -42,7 +42,7 @@ pub fn decl_fn(&self, decl: &fn(fnty: Type) -> ValueRef) -> ValueRef {
         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 @@ pub fn build_shim_args(&self, bcx: @mut Block, arg_tys: &[Type], llargbundle: Va
 
     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 {
index 1492f44d97745ed623c1ae9d5c91d7f59fa520e0..4ad4400e98227baee26bdebf14b3a17e56132f60 100644 (file)
@@ -133,7 +133,7 @@ fn compute_info(&self,
                     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);
index a9407092eed45d5c608b3ced270068ad15140788..b863447a0b4266e9d5d5beef7580dc0fa0b9752d 100644 (file)
@@ -190,7 +190,7 @@ fn compute_info(&self,
         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);
index fb09c8994ce7708e57e3a123553760b91a0831a4..7796f05249d5ae888ff3648c9ef0101a6c223adf 100644 (file)
@@ -180,7 +180,7 @@ fn classify_struct(tys: &[Type],
                        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 fixup(ty: Type, cls: &mut [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_ty(ty: 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);
index 845229c4eda58e59940b0fc9faf9582c0eb68c2d..6492c8a1cf21ed7dcee839489c36c55e8345cdd8 100644 (file)
@@ -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)
     }
 
index d9e9062a777e6409217f208ec63c2c33f72aa3cd..713d502c3fb40df2a507c6b12eb434e49b3ebfe0 100644 (file)
@@ -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); }
index 8b2e5e39a82c13f4b8c445b99f2e4fec875f2e38..df59133d9706e71c298337ddd4c89e2f902c134a 100644 (file)
@@ -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 {
index 8c87766bbbe1f025b7914eabc0919aec155ec4bc..7d9eb95505bb7d4887b936bbac26bbfd3e51900c 100644 (file)
@@ -36,7 +36,7 @@
 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 @@ fn trans_if_else(else_bcx_in: @mut Block, elexpr: @ast::expr,
 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) }
                 _ => {}
index b657f162cc3c0390dda94b7eb316c52603a84f28..5ad18b63c767dc6b5a0455af80ee3648dbf810ba 100644 (file)
@@ -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;
index 30034d76670250714dee953dee061c74b28b1869..8f93d61aff60eee991b7cc195c214b4b835f7308 100644 (file)
@@ -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 @@ fn build_args(bcx: @mut Block,
                 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 @@ fn build_ret(bcx: @mut Block,
                      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);
             }
index b052993012d8c8cfd48187702d7e8b06284f9ec4..b9c20893c8e311bce8ee360a9d0a07eb098f74c8 100644 (file)
@@ -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);
     }
index c91be89b30ba2fd97a8b0ba06d0bb1d0ccd70f26..32d50ef9fd3ca603b230c12e3266f83c47718264 100644 (file)
@@ -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));
               }
index 3547745794e214dab1365aaadefd1a470b0b2cfa..debaf0f04a7df67b9f2baa8c844fe74babff8c38 100644 (file)
@@ -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)
         }
 
index ac3e06e3495779a6c771746236f32a90424689a9..272c72f03eaee73932dd1bd44068a560cf0da48f 100644 (file)
@@ -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());
 
 
index 3d23828979f44038d121196fa3116bc3ef3505d3..93b2e8a6665df25816d513630a9c929217c3ae8d 100644 (file)
@@ -96,7 +96,7 @@ pub fn visit(&mut self, ty_name: &str, args: &[ValueRef]) {
         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 @@ pub fn visit_ty(&mut self, t: ty::t) {
               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 @@ pub fn visit_ty(&mut self, t: ty::t) {
               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 @@ pub fn visit_ty(&mut self, t: ty::t) {
             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 @@ pub fn visit_ty(&mut self, t: ty::t) {
     }
 
     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),
index 2f29d92574c2f8d924fc97b446f1a617dda69336..b37a99771bde0cd5edd523ef6d068d655b1eaa36 100644 (file)
@@ -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);
                     }
                 }
index 0d3a8039d90a40eca22c6383132f2646b52e9702..52db07f24289d451436212e60de0755d681a2744 100644 (file)
@@ -194,7 +194,7 @@ fn store_type_uses(cx: Context, fn_id: def_id) -> @~[type_uses] {
     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);
             }
         },
index 3ec66aff1760cdab8078f8621fba698a80e1803d..1215097025fb184a6da5340af8814321a5134835 100644 (file)
@@ -959,11 +959,11 @@ fn rflags(r: Region) -> uint {
     }
     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 sflags(substs: &substs) -> uint {
         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<uint> {
     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;
index a506142a971b06a9dbf4e211fe656ce8b5fc8d62..8a8b3a07c5d8b437f7e80c97a5b4f6e23c92b3f5 100644 (file)
@@ -768,7 +768,7 @@ fn conv_builtin_bounds(tcx: ty::ctxt, ast_bounds: &Option<OptVec<ast::TyParamBou
     match (ast_bounds, store) {
         (&Some(ref bound_vec), _) => {
             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) {
index 5853d6b9b0a4323b8bdcf522122531b93777effc..9555a58fff34722731b7eff7faf318f36b776241 100644 (file)
@@ -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);
index 0df3a0e839ba356f9708bca68d21617b0d7455fb..51d454e45a0c4e109c766f3051b86455f0c28dd3 100644 (file)
@@ -314,12 +314,12 @@ pub fn push_extension_candidates(&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 @@ pub fn push_inherent_candidates_from_bounds(&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 @@ pub fn search_for_some_kind_of_autorefd_method(
         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 => {}
index 61801404148fb234d22a2e6241aaaf8ad6b801e4..a8d1a1d49d75e99fba54b6db998b32df2d058f1b 100644 (file)
@@ -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 @@ fn gather_locals(fcx: @mut FnCtxt,
         };
 
         // 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 @@ fn gather_locals(fcx: @mut FnCtxt,
         }
 
         // 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 @@ fn check_argument_types(
         // 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 @@ fn check_argument_types(
                 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 @@ fn check_struct_or_variant_fields(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 @@ fn check_struct_or_variant_fields(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 @@ fn check_loop_body(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 @@ fn check_loop_body(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 @@ fn types_compatible(fcx: @mut FnCtxt, sp: span,
         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 @@ fn do_check(ccx: @mut CrateCtxt,
         let mut disr_vals: ~[uint] = ~[];
         let mut prev_disr_val: Option<uint> = 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",
index 422f59c14eac16940514bc98b0665bd4f72321e3..d09ca1c25e4887d797c20f369561db6cf71a6681 100644 (file)
@@ -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 fn for_match(rcx: @mut Rcx, discr: @ast::expr, arms: &[ast::arm]) {
         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 @@ fn maybe_make_subregion(
             sub_region: ty::Region,
             sup_region: Option<ty::Region>)
         {
-            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 fn for_by_ref(rcx: @mut Rcx,
         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 @@ fn link_ref_bindings_in_pat(
             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 @@ fn link_ref_bindings_in_pat(
                 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 @@ fn link_ref_bindings_in_pat(
                 };
 
                 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 @@ fn link_ref_bindings_in_pat(
     fn link_ref_bindings_in_pats(rcx: @mut Rcx,
                                  pats: &~[@ast::pat],
                                  guarantor: Option<ty::Region>) {
-        for pats.iter().advance |pat| {
+        foreach pat in pats.iter() {
             link_ref_bindings_in_pat(rcx, *pat, guarantor);
         }
     }
index 02c003b7525ef40477b8a9c59508d93f8e1df085..cefe0045cb04eb7465c0ae30a8c0062126a062dd 100644 (file)
@@ -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 @@ fn relate(the_stack: &[ty::Region],
               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) {
index 3bae934f2707848600719702b7bd0a43bdcf41da..ec86945887e482af6421a288cc6d7bdf33308091 100644 (file)
@@ -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.
index 5976cb2dda7a650412e0c4888709c7a936aef603..b46df585b73d75481c54f6ee35f72e69d793aa3c 100644 (file)
@@ -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) {
index 5555a8906565f26ed67d1063b42dbc92061d6d3f..950c836e03210a0b8d56e729eb59fd4fca058734 100644 (file)
@@ -243,7 +243,7 @@ pub fn check_implementation(&self,
 
         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 @@ pub fn instantiate_default_methods(&self,
         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 @@ pub fn check_implementation_coherence_of(&self, trait_def_id: def_id) {
     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 @@ pub fn check_trait_methods_are_implemented(
         }
 
         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 @@ pub fn create_impl_from_item(&self, item: @item) -> @Impl {
         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 @@ pub fn add_external_impl(&self,
         }
 
         // 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 @@ pub fn populate_destructor_table(&self) {
             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;
index 08378c9930a09196aefabf555c09d0aede9830d7..63c14dd82883450d1753d1e5533df1bae2e49fcb 100644 (file)
@@ -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 @@ fn compute_bounds(
             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);
index 21f3fdf7b2cfea39942a9997427e2ada86621fbf..a59db0bfd9e21b28d15ae7b590ddb7ccffd5a64b 100644 (file)
@@ -114,7 +114,7 @@ fn report_sup_sup_conflict(@mut self,
 impl ErrorReporting for InferCtxt {
     pub fn report_region_errors(@mut self,
                                 errors: &OptVec<RegionResolutionError>) {
-        for errors.iter().advance |error| {
+        foreach error in errors.iter() {
             match *error {
                 ConcreteFailure(origin, sub, sup) => {
                     self.report_concrete_failure(origin, sub, sup);
index 32f3e8fea3a86407f95831cef5e9b4aa66fb334a..84a2215fbfef1c99f4340de5ac4d4c29c3741d87 100644 (file)
@@ -219,7 +219,7 @@ fn generalize_region(this: &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);
index f619135d82b19c4eca0e033159520553c595f937..e487ca03c862164548c2ee4c4f442fc29d790bd2 100644 (file)
@@ -730,7 +730,7 @@ pub fn type_error_message_str_with_expected(@mut self,
                         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)
             }
         }
index c4e41ea94a6cbb015f41762e12a42ddf69914065..500f8e4fe48060f238e32913face76408f634560 100644 (file)
@@ -916,7 +916,7 @@ fn collect_concrete_region_errors(
         &self,
         errors: &mut OptVec<RegionResolutionError>)
     {
-        for self.constraints.iter().advance |(constraint, _)| {
+        foreach (constraint, _) in self.constraints.iter() {
             let (sub, sup) = match *constraint {
                 ConstrainVarSubVar(*) |
                 ConstrainRegSubVar(*) |
@@ -1032,7 +1032,7 @@ fn construct_graph(&self) -> RegionGraph {
         }
         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 @@ fn collect_error_for_expanding_node(
             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 @@ fn collect_error_for_contracting_node(
             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 @@ fn iterate_until_fixed_point(&self,
             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",
index 9aaee7c7ce0b7ecdc7675d04a3e837ec8a2951e8..cb8f7ddb222da32dd8f318cfcff86a78764cd6ba 100644 (file)
@@ -194,7 +194,7 @@ fn fn_sigs(&self, a: &ty::FnSig, b: &ty::FnSig) -> cres<ty::FnSig> {
         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 {
index e26402d686d34a68f5458a093e0c66a111765d31..b8477149430fab8cfc52844f093684bfa0c5a4d8 100644 (file)
@@ -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 @@ fn search_mod(self: &Env,
                       idx: uint,
                       names: &[~str]) -> Option<ast::node_id> {
             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 @@ pub fn resolve_regions(exp_count: uint) {
 
         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!",
index 94d30fd9a87ac39c7d96683d5d1d693f0132863e..16740d3ce4e5ac0ef91788f8ef240d5fb2f99f3c 100644 (file)
@@ -58,7 +58,7 @@ fn has_self(&self) -> bool {
     }
 
     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 @@ pub fn add_generics(&mut self, generics: &ast::Generics) {
                             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);
                         }
                     }
index 6604a8bc74be0d8eeb0ea39dac6f44e0b7b6202e..a9531f33b5e5d9a11eed0c838fb6ecb394730829 100644 (file)
@@ -152,7 +152,7 @@ pub fn describe_warnings() {
     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 @@ fn padded(max: uint, s: &str) -> ~str {
               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 @@ fn padded(max: uint, s: &str) -> ~str {
 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 @@ impl Drop for finally {
                      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)
                 }
             }
index 68e05ad7d04ba1668d08005b9f84abe184fb7060..595748390ebfdb1c4eec23ac25a597f8f29dad9c 100644 (file)
@@ -398,7 +398,7 @@ fn field_to_str(cx: ctxt, f: field) -> ~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 @@ fn repr(&self, tcx: ctxt) -> ~str {
                 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 @@ fn user_string(&self, tcx: ctxt) -> ~str {
         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)
index aa3557e8a9d848e3ead55ba2a046ae677e2afd98..3cc243d6917886f6543a7892aa27be8d0602e5ab 100644 (file)
@@ -73,7 +73,7 @@ pub fn usage() {
     println("Usage: rustdoc [options] <cratefile>\n");
     println("Options:\n");
     let r = opts();
-    for r.iter().advance |opt| {
+    foreach opt in r.iter() {
         printfln!("    %s", opt.second());
     }
     println("");
index 8ac987108b39f0c31c4f9851abdf06645322ec5e..3e608fc6ef89eda08219993cff234069a04b7463 100644 (file)
@@ -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(*) => {
index 7ee31d5a8e7e01f5b446cd986ab8a30ac92db090..0706cd98e5816414a5bb291f2865c00c9976b72c 100644 (file)
@@ -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(~"<div class='index'>");
     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());
     }
 }
index 9f39f8545395e48c9e7d01d886f75df9a8fa04ae..da73027a4abc01620d93a27cf450ae3971671dc3 100644 (file)
@@ -18,8 +18,6 @@
 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<doc::Section> = 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() {
index 893e58290faf859ddb219595c7296aa404214bac..40390d67a0dae29219cba04b931ecf74a87d7ff5 100644 (file)
@@ -98,7 +98,7 @@ fn assert_encodable<T: Encodable<::extra::ebml::writer::Encoder>>(t: &T) {}
 
         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 @@ fn assert_encodable<T: Encodable<::extra::ebml::writer::Encoder>>(t: &T) {}
             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 @@ fn main() {
 
         // 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 @@ fn main() {
         }
 
         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 @@ fn program_header(&self) -> ~str {
     /// 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 @@ pub fn set_cache(&self) {
     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 @@ pub fn register_new_vars(&mut self, blk: &ast::Block, tcx: ty::ctxt) {
 
         // 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 @@ fn each_user_local(blk: &ast::Block, f: &fn(@ast::Local)) {
         }
 
         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 {
index a79f20633ad073835ec421a222db07d87ab0970a..58732a7a96a818990b609f075ac5d09878497d26 100644 (file)
@@ -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 parse_input(sess: session::Session, binary: @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 @@ fn repl() -> Repl {
     #[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);
index 5f1e0594c47cd1659bbd5ec2b88528894b31076e..942e622b140bc9d513cc673a91761fbdfea9727f 100644 (file)
 
 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| {
index 3b3f08baa7e8a2a3d2fb6141cc0e8a9960acca2c..07e8de35fd6de8a17fa4e5bc6ec792bb41c21d89 100644 (file)
@@ -135,7 +135,7 @@ fn stem_matches(&self, p: &Path) -> bool {
             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 @@ fn stem_matches(&self, p: &Path) -> bool {
     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 @@ fn build_crates(&self,
                     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()));
index 696e4b30d1b58605253aa2e6c233d8e2980c3d12..ef95adf8c17056c759ed0666dfdbd9006296aa90 100644 (file)
@@ -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<Path> {
     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;
index b2aa53f3ab15fec26871f9d0d79768f72e91941c..29c0380948fa6d777498be5fcca5acfdf7d0b66d 100644 (file)
@@ -430,14 +430,14 @@ fn install_no_build(&self, workspace: &Path, id: &PkgId) {
                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());
index c5705f069a2181db006a6dcda93b1a7904ea573c..6b174836a68dcc9ba42383ccc0c38ba0c77dbf72 100644 (file)
@@ -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());
         }
     });
index 12d3f4fcfcec67615f80e46a8e8ff4b8c79535a2..570a9091d180a8eaeedceefd19e91ec408a1895e 100644 (file)
@@ -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)
index 4fa72b713ace24e9fa07a4c4169af1035059d419..d0c5c099ec455764b9fbc202af29855ea658e836 100644 (file)
@@ -108,7 +108,7 @@ pub fn try_getting_local_version(local_path: &Path) -> Option<Version> {
 
     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<Version> {
                                             ~"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<Version> {
     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 {
index 952352a02a5fc43b45b8bd8fd742c73b74cacbc6..3417d051e6290f28c2b5fc0cbd4ae3eb95a83e99 100644 (file)
@@ -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;
         }
index 8e5b6b9311116377f928cf6d321b9b64efd406a6..22cbcb0d6d4745f35fa8a35dfd1d3c9ec2ef6c16 100644 (file)
@@ -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<A>(size: Option<uint>,
 #[inline]
 pub fn append<T:Clone>(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<T:Clone>(lhs: @[T], rhs: &[T]) -> @[T] {
 /// Apply a function to each element of a vector and return the results
 pub fn map<T, U>(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<T>(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
index 4fb43e5157b433acc03a52ec25ef9c24591dfdaf..d0378fa947b2b776c0d700c345998558ef617c9b 100644 (file)
 
 #[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<T, U, V>(f_left: &fn(&T) -> V,
 /// Extracts from a vector of either all the left values
 pub fn lefts<T:Clone,U>(eithers: &[Either<T, U>]) -> ~[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<T:Clone,U>(eithers: &[Either<T, U>]) -> ~[T] {
 /// Extracts from a vector of either all the right values
 pub fn rights<T, U: Clone>(eithers: &[Either<T, U>]) -> ~[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<T, U: Clone>(eithers: &[Either<T, U>]) -> ~[U] {
 pub fn partition<T, U>(eithers: ~[Either<T, U>]) -> (~[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)
index 6c3fcd41ed3b9d6fb1b698f95faee702332efa27..16d138d4e1fbeed9c7785859cc76e84be9b9cffb 100644 (file)
@@ -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 @@ fn result_bytes(&mut self) -> ~[u8] {
     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 @@ fn test_siphash() {
 
         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
index e43293f32122a4edd2576b718a20735f9b716bab..b162869201d39f4fa45f0912603f3051be7fb093 100644 (file)
@@ -177,7 +177,7 @@ fn resize(&mut self, new_capacity: uint) {
 
         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 @@ fn ne(&self, other: &HashMap<K, V>) -> bool { !self.eq(other) }
 impl<K:Hash + Eq + Clone,V:Clone> Clone for HashMap<K,V> {
     fn clone(&self) -> HashMap<K,V> {
         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<K> {
 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 @@ fn next(&mut self) -> Option<(&'self K, &'self 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 @@ fn next(&mut self) -> Option<(&'self K, &'self mut V)> {
 impl<K, V> Iterator<(K, V)> for HashMapConsumeIterator<K, V> {
     #[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 @@ fn next(&mut self) -> Option<(K, V)> {
 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 @@ fn next(&mut self) -> Option<&'self K> {
 impl<K> Iterator<K> for HashSetConsumeIterator<K> {
     #[inline]
     fn next(&mut self) -> Option<K> {
-        for self.iter.advance |elt| {
+        foreach elt in self.iter {
             match elt {
                 Some(bucket) => return Some(bucket.key),
                 None => {},
@@ -628,7 +628,7 @@ fn from_iterator(iter: &mut T) -> HashMap<K, V> {
 
 impl<K: Eq + Hash, V, T: Iterator<(K, V)>> Extendable<(K, V), T> for HashMap<K, V> {
     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 @@ fn from_iterator(iter: &mut T) -> HashSet<K> {
 
 impl<K: Eq + Hash, T: Iterator<K>> Extendable<K, T> for HashSet<K> {
     fn extend(&mut self, iter: &mut T) {
-        for iter.advance |k| {
+        foreach k in *iter {
             self.insert(k);
         }
     }
@@ -959,7 +959,7 @@ fn test_iterate() {
             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 @@ fn test_from_iter() {
 
         let map: HashMap<int, int> = 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 @@ fn test_from_iter() {
 #[cfg(test)]
 mod test_set {
     use super::*;
+    use prelude::*;
     use container::Container;
     use vec::ImmutableEqVector;
     use uint;
@@ -1107,7 +1108,7 @@ fn test_iterate() {
             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 @@ fn test_intersection() {
 
         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 @@ fn test_difference() {
 
         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 @@ fn test_symmetric_difference() {
 
         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 @@ fn test_union() {
 
         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 @@ fn test_from_iter() {
 
         let set: HashSet<int> = xs.iter().transform(|&x| x).collect();
 
-        for xs.iter().advance |x: &int| {
+        foreach x in xs.iter() {
             assert!(set.contains(x));
         }
     }
index 1a92e5e07c72d19bd6345612ea655b12fd336eb4..cef183d04291d1b533d9c5cc4337781f980743e2 100644 (file)
 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 @@ fn wb() -> c_int {
     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 fn obj_sync(o: @FSyncable, opt_level: Option<Level>,
 
 #[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 @@ fn check_read_ln(len : uint, s: &str, ivals: &[int]) {
                 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 @@ fn test_read_write_le() {
         // 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 @@ fn test_read_write_le() {
         // 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 @@ fn test_read_write_be() {
         // 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 @@ fn test_read_write_be() {
         // 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 @@ fn test_read_be_int_n() {
         // 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 @@ fn test_read_be_int_n() {
         // 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);
index 9fe865333a2157c68ce9ed174e86ad6ee8478522..84923876cbf6444ccb882f7dc4901cab1ac9e192 100644 (file)
@@ -295,7 +295,7 @@ fn scan<'r, St, B>(self, initial_state: St, f: &'r fn(&mut St, A) -> Option<B>)
     /// 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 @@ fn flat_map_<'r, B, U: Iterator<B>>(self, f: &'r fn(A) -> U)
     /// ~~~ {.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 @@ fn nth(&mut self, mut n: uint) -> Option<A> {
     #[inline]
     fn last_(&mut self) -> Option<A> {
         let mut last = None;
-        for self.advance |x| { last = Some(x); }
+        foreach x in *self { last = Some(x); }
         last
     }
 
@@ -600,20 +600,20 @@ fn len_(&mut self) -> uint { self.fold(0, |cnt, _x| cnt + 1) }
 
     #[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<A> {
-        for self.advance |x| {
+        foreach x in *self {
             if predicate(&x) { return Some(x) }
         }
         None
@@ -623,7 +623,7 @@ fn find_(&mut self, predicate: &fn(&A) -> bool) -> Option<A> {
     #[inline]
     fn position(&mut self, predicate: &fn(A) -> bool) -> Option<uint> {
         let mut i = 0;
-        for self.advance |x| {
+        foreach x in *self {
             if predicate(x) {
                 return Some(i);
             }
@@ -635,7 +635,7 @@ fn position(&mut self, predicate: &fn(A) -> bool) -> Option<uint> {
     #[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<A>> Iterator<A> for Filter<'self, A, T> {
     #[inline]
     fn next(&mut self) -> Option<A> {
-        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<A>> Iterator<B> for FilterMap<'self, A, B, T> {
     #[inline]
     fn next(&mut self) -> Option<B> {
-        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<A>, B, U: Iterator<B>> Iterator<B> for
     #[inline]
     fn next(&mut self) -> Option<B> {
         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<B> {
         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 @@ fn test_iterator_chain() {
         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 @@ fn test_iterator_chain() {
         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 @@ fn test_filter_map() {
     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 @@ fn test_iterator_take_while() {
         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 @@ fn test_iterator_skip_while() {
         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 @@ fn test_iterator_skip() {
         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 @@ fn test_iterator_take() {
         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 @@ fn add(old: &mut int, new: &uint) -> Option<float> {
 
         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 @@ fn test_iterator_flat_map() {
         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 @@ fn count(st: &mut uint) -> Option<uint> {
 
         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 @@ fn test_cycle() {
         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 @@ fn check_randacc_iter<A: Eq, T: Clone + RandomAccessIterator<A>>(a: T, len: uint
         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 @@ fn test_random_access_peek() {
         // 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 @@ fn test_random_access_transform() {
         // 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));
         }
     }
index 6e4880550ebb4150e04868e7295e181e0f3ebc6e..7eca47743d6a6136882a187134912b12f99f3f3d 100644 (file)
@@ -50,8 +50,6 @@
 use str::StrSlice;
 use clone::DeepClone;
 
-#[cfg(test)] use iterator::IteratorUtil;
-
 /// The option type
 #[deriving(Clone, DeepClone, Eq)]
 pub enum Option<T> {
@@ -499,7 +497,7 @@ fn test_option_dance() {
         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);
index 2802fc30c332ed17e75778179ecaf1db1d98185f..3afd946ee264b15f12d885f0c8f85264ad084974 100644 (file)
@@ -220,7 +220,7 @@ unsafe fn get_env_pairs() -> ~[~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 @@ pub fn new(min_len: uint, options: ~[MapOption]) -> Result<~MemoryMap, MapError>
         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 @@ pub fn new(min_len: uint, options: ~[MapOption]) -> Result<~MemoryMap, MapError>
         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 @@ fn test_self_exe_path() {
     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 @@ fn homedir() {
         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 @@ fn list_dir() {
         // 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());
         }
     }
index af6bfc16e540bf4f8633e8992e77871426bf1b47..989a5cbd35b3b79729567f2471bcfeafb4cd449e 100644 (file)
@@ -19,7 +19,7 @@
 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 @@ fn is_restricted(&self) -> bool {
 
     fn push_many<S: Str>(&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 @@ fn push_many<S: Str>(&self, cs: &[S]) -> 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 @@ fn is_restricted(&self) -> bool {
 
     fn push_many<S: Str>(&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 @@ fn push_many<S: Str>(&self, cs: &[S]) -> 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 @@ fn is_ancestor_of(&self, other: &WindowsPath) -> bool {
 
 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 {
index 07b435f1b64b3c7c9fe41a64ce986cec8f6d2edb..a2ad2eb5e7621af42b4d743b938bd68838ced520 100644 (file)
@@ -87,7 +87,7 @@
 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<T: Selectable>(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<T: Selectable>(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<T: Selectable>(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<T:Send,Tb:Send>(mut endpoints: ~[RecvPacketBuffered<T, Tb>])
                                     Option<T>,
                                     ~[RecvPacketBuffered<T, Tb>]) {
     let mut endpoint_headers = ~[];
-    for endpoints.mut_iter().advance |endpoint| {
+    foreach endpoint in endpoints.mut_iter() {
         endpoint_headers.push(endpoint.header());
     }
 
index 6d0613b2e674fe40591080cfcb790b3f6aff792a..aed68f47fdf393bad23d6f421b049f4356a64916 100644 (file)
@@ -48,7 +48,6 @@ fn main () {
 use cmp;
 use container::Container;
 use int;
-use iterator::IteratorUtil;
 use local_data;
 use num;
 use prelude::*;
@@ -495,7 +494,7 @@ fn gen_uint_range(&mut self, start: uint, end: uint) -> uint {
     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 @@ fn choose_weighted<T:Clone>(&mut self, v: &[Weighted<T>]) -> T {
     fn choose_weighted_option<T:Clone>(&mut self, v: &[Weighted<T>])
                                        -> Option<T> {
         let mut total = 0u;
-        for v.iter().advance |item| {
+        foreach item in v.iter() {
             total += item.weight;
         }
         if total == 0u {
@@ -567,7 +566,7 @@ fn choose_weighted_option<T:Clone>(&mut self, v: &[Weighted<T>])
         }
         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 @@ fn choose_weighted_option<T:Clone>(&mut self, v: &[Weighted<T>])
      */
     fn weighted_vec<T:Clone>(&mut self, v: &[Weighted<T>]) -> ~[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 @@ macro_rules! rngstep(
         );
 
         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 @@ fn rand_shuffle_100(bh: &mut BenchHarness) {
             rng.shuffle_mut(x);
         }
     }
-}
\ No newline at end of file
+}
index 60bd30bbee86314cf7102213ddecbf9886bfe3a3..edab639dfbe8b867e95fa0c721c464b4d28a5ee9 100644 (file)
@@ -20,8 +20,9 @@
 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 @@ pub fn write<T:Repr>(&self) -> bool {
 
     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('"');
index c045c191488f5af56e7ba9053f3ab90877f92e07..89803d022f84401c7601ac8fb97bfc6fdc1307e9 100644 (file)
@@ -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 @@ pub fn map<U:Clone>(&self, op: &fn(&T) -> U) -> Result<U,E> {
 pub fn map_vec<T,U,V>(ts: &[T], op: &fn(&T) -> Result<V,U>)
                       -> 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)
index 2d489e4dbc30c76ae2bd8830eb653e17c43b058c..bb66a90123428a81d37384bf1184e669b6163eac 100644 (file)
@@ -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);
index dc8669b9264cc30dd97527e84148c356944d722a..44418001f14bb97247454e8d85236d7f76d6f40a 100644 (file)
@@ -64,7 +64,7 @@
 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();
     }
 
index bc9e265c8d99825ca219e099184316324a3799c0..6296186aa4913dfed8e4a49d7f4a351dfb42417b 100644 (file)
@@ -37,7 +37,7 @@ pub fn select<A: 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<A: 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 @@ fn select_helper(num_ports: uint, send_on_chans: &[uint]) {
         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 @@ fn select_helper(num_ports: uint, send_on_chans: &[uint]) {
         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 @@ fn select_stream() {
             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);
index 260903cbcbfb4703a9dde3d8099460ee17f2e04b..ec1094ed4f2546ceae036e0bf65c038bdc676f6c 100644 (file)
@@ -14,7 +14,7 @@
 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;
index 8ea4a197269a8d0e16f9a1d52e553d52a5761076..773adb3848ad17bab629a964d9fc3d441f3061d0 100644 (file)
@@ -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 @@ fn listen_ip4() {
                     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 @@ fn listen_ip6() {
                         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 @@ fn udp_recv_ip4() {
                 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 @@ fn udp_recv_ip6() {
                 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;
index 122bc42c4cc83b1ca28274218d5c532a99cadca8..acdc97da58c7b9b1388f18efdf62d918c8e64124 100644 (file)
@@ -16,7 +16,6 @@
 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 @@ pub fn new(prog: &str, args: &[~str], options: ProcessOptions)
                                    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 @@ fn fclose_and_null(f_opt: &mut Option<*libc::FILE>) {
      * 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<T>(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<T>(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<T>(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 @@ fn test_inherit_env() {
         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 @@ fn test_inherit_env() {
         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)) ||
index b0ae719e00f38a08f69ba7bdced4a078fce5850e..894351bcc53988e339e4cad3ae981970f694cf43 100644 (file)
@@ -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 @@ pub fn concat(&self) -> ~str {
         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 @@ pub fn connect(&self, sep: &str) -> ~str {
                 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 @@ fn next(&mut self) -> Option<&'self str> {
 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 @@ pub fn eq(a: &~str, b: &~str) -> bool {
 // 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 @@ pub struct CharRange {
 
 /// Unsafe operations
 pub mod raw {
+    use option::Some;
     use cast;
     use libc;
     use ptr;
@@ -886,7 +887,7 @@ pub unsafe fn push_byte(s: &mut ~str, b: u8) {
     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 @@ fn add(&self, rhs: & &'self str) -> ~str {
     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 @@ fn ends_with(&self, needle: &str) -> bool {
     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 @@ fn escape_default(&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 @@ fn trim_right_chars<C: CharEq>(&self, to_trim: &C) -> &'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 @@ fn to_managed(&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 @@ fn as_bytes(&self) -> &'self [u8] {
     /// or `None` if there is no match
     fn find<C: CharEq>(&self, search: C) -> Option<uint> {
         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 @@ fn find<C: CharEq>(&self, search: C) -> Option<uint> {
     fn rfind<C: CharEq>(&self, search: C) -> Option<uint> {
         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 @@ fn slice_shift_char(&self) -> (char, &'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 @@ fn lev_distance(&self, t: &str) -> uint {
 
         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 @@ fn lev_distance(&self, t: &str) -> uint {
     /// ~~~ {.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 @@ fn extend(&mut self, iterator: &mut T) {
         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 @@ fn test_subslice_offset() {
 
         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 @@ fn test_utf16() {
                 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 @@ fn test_char_at() {
         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 @@ fn test_char_at_reverse() {
         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 @@ fn test_iterator() {
         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 @@ fn test_rev_iterator() {
         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 @@ fn test_byte_iterator() {
         ];
         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 @@ fn test_byte_rev_iterator() {
         ];
         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 @@ fn test_char_offset_iterator() {
         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 @@ fn test_char_offset_rev_iterator() {
         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;
         }
index 24e48dbe139e9e4d186d11af75f4deb8ee14233e..3f24f98bd3d2a25a25891f8d1b0932d1232b8f0d 100644 (file)
 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 @@ unsafe fn to_ascii_nocheck(&self) -> &'self[Ascii] {
 
     #[inline]
     fn is_ascii(&self) -> bool {
-        for self.iter().advance |b| {
+        foreach b in self.iter() {
             if !b.is_ascii() { return false; }
         }
         true
index 477981c65e515f0769587c015df4b920d69ed823..69c4bb20caff23cb67fe94121da1ce94d07590cd 100644 (file)
@@ -167,7 +167,7 @@ pub unsafe fn local_pop<T: 'static>(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 {
index 54e468269766e174df49c4b4c994b2e3ed18a832..c7f34974a6e09cd3f50dadcfecfb2babbb2f4cc5 100644 (file)
@@ -96,7 +96,6 @@
 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 @@ fn drop(&self) {
             // 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<AutoNotify>) -> 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);
             }
index 50cbd36ced9f9dd1a72302c9cd4d5ac8dc67ab72..b87a165706516ff3ae56256284521d06497d87ff 100644 (file)
 
 */
 
+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<A:ToStr+Hash+Eq, B:ToStr> ToStr for HashMap<A, B> {
     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<A:ToStr+Hash+Eq> ToStr for HashSet<A> {
     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<A:ToStr> 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<A:ToStr> 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;
             }
index 6a0554a8c8d4324be5e76f19437e8b63fe08b18f..704e3a500f12bf6f79ca445f7904e2a56d95f859 100644 (file)
@@ -164,7 +164,7 @@ fn from_iterator(iter: &mut Iter) -> TrieMap<T> {
 
 impl<T, Iter: Iterator<(uint, T)>> Extendable<(uint, T), Iter> for TrieMap<T> {
     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 @@ fn from_iterator(iter: &mut Iter) -> TrieSet {
 
 impl<Iter: Iterator<uint>> Extendable<uint, Iter> for TrieSet {
     fn extend(&mut self, iter: &mut Iter) {
-        for iter.advance |elem| {
+        foreach elem in *iter {
             self.insert(elem);
         }
     }
@@ -283,7 +283,7 @@ fn each_reverse<'a>(&'a self, f: &fn(&uint, &'a T) -> bool) -> bool {
     }
 
     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<T>(trie: &TrieNode<T>) {
 
     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 @@ fn test_from_iter() {
 
         let map: TrieMap<int> = 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 @@ fn test_from_iter() {
 #[cfg(test)]
 mod test_set {
     use super::*;
+    use prelude::*;
     use uint;
 
     #[test]
@@ -583,7 +584,7 @@ fn test_from_iter() {
 
         let set: TrieSet = xs.iter().transform(|&x| x).collect();
 
-        for xs.iter().advance |x| {
+        foreach x in xs.iter() {
             assert!(set.contains(x));
         }
     }
index 1a136bbaa3774c95e7084a1e92a3ea5045b7f7cb..a8cdd1fb2dcc79c02811e68536f8eeba0c0fa5e9 100644 (file)
@@ -77,7 +77,6 @@
 */
 
 use prelude::*;
-use iterator::IteratorUtil;
 
 /*
  * We have a 'ct' (compile-time) module that parses format strings into a
@@ -616,7 +615,7 @@ pub fn pad(cv: Conv, s: &str, head: Option<char>, mode: PadMode,
         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 fn pad(cv: Conv, s: &str, head: Option<char>, mode: PadMode,
         };
         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 fn pad(cv: Conv, s: &str, head: Option<char>, mode: PadMode,
         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 @@ fn have_precision(cv: Conv) -> bool {
         // 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 @@ fn have_precision(cv: Conv) -> bool {
             }
         }
         buf.push_str(padstr);
-        for head.iter().advance |&c| {
+        foreach &c in head.iter() {
             buf.push_char(c);
         }
         buf.push_str(s);
index 4c52d897a7212557624ccca77367fdd6f8d22e7b..1fae96e78475c983ff929badbd2b6f3bdf6bb459 100644 (file)
@@ -425,7 +425,7 @@ fn exclusive_new_arc() {
                 }
             };
 
-            for futures.iter().advance |f| { f.recv() }
+            foreach f in futures.iter() { f.recv() }
 
             do total.with |total| {
                 assert!(**total == num_tasks * count)
index db57d7bac68e5f558a8bb44cdbb64ce4f51a8ab9..534dc27196c30b0943533d01fa39b6e2ddaa05e2 100644 (file)
@@ -295,7 +295,7 @@ pub fn append_one<T>(lhs: ~[T], x: T) -> ~[T] {
  */
 pub fn flat_map<T, U>(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 @@ pub fn concat_vec(&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 @@ pub fn concat_vec(&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 @@ pub fn connect_vec(&self, sep: &T) -> ~[T] {
 pub fn unzip_slice<T:Clone,U:Clone>(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<T:Clone,U:Clone>(v: &[(T, U)]) -> (~[T], ~[U]) {
 pub fn unzip<T,U>(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 @@ fn equiv(&self, other: &V) -> bool { self.as_slice() == other.as_slice() }
 
     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 @@ fn cmp(&self, other: &@[T]) -> Ordering { self.as_slice().cmp(&other.as_slice())
 
     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<T> 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 @@ fn rsplitn_iter(self, n: uint, pred: &'self fn(&T) -> bool) -> RSplitIterator<'s
      *
      * ~~~ {.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 @@ fn window_iter(self, size: uint) -> WindowIter<'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 @@ fn last_opt(&self) -> Option<&'self T> {
      */
     #[inline]
     fn rposition(&self, f: &fn(t: &T) -> bool) -> Option<uint> {
-        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 @@ fn rposition_elem(&self, t: &T) -> Option<uint> {
 
     /// 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 @@ fn partitioned(&self, f: &fn(&T) -> bool) -> (~[T], ~[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<T> OwnedVector<T> 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 @@ fn partition(self, f: &fn(&T) -> bool) -> (~[T], ~[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 @@ fn reverse(self) {
 
     #[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<T> {
 impl<'self, T:Clone> MutableCloneableVector<T> 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<A, T: Iterator<A>> FromIterator<A, T> 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 @@ fn extend(&mut self, iterator: &mut T) {
         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 @@ fn test_iter_clone() {
     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 @@ fn test_rev_iterator() {
         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 @@ fn test_rev_iterator() {
     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 @@ fn test_mut_split() {
         {
             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 @@ fn test_iter_zero_sized() {
         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 @@ fn test_iter_zero_sized() {
         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;
         }
index bf0dee0822fd12f56b4d7a0e2d5e2a1740be4fbd..e086334eb489fa735ace599e00ec42172a56a065 100644 (file)
@@ -209,9 +209,9 @@ pub fn check_valid(&self) -> Option<(Abi, Abi)> {
         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<Abi>) {
     let mut set = AbiSet::empty();
-    for abis.iter().advance |&abi| {
+    foreach &abi in abis.iter() {
         set.add(abi);
     }
     let r = set.for_arch(arch);
index 7e70817a68e71eeba72185e989fc35674590153d..bee0f113aa7476c5c26f08eba6aab5c7047ec398 100644 (file)
@@ -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));
         }
     }
index 5ad325fed569e4c8b81fef6475cb9fcdf941d455..b8a2ea1b57db958848f910367b095ddbd2fdecdc 100644 (file)
@@ -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 @@ pub fn add(&mut self, id: NodeId) {
 
 pub fn id_visitor<T: Clone>(vfn: @fn(NodeId, T)) -> visit::vt<T> {
     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<T: Clone>(vfn: @fn(NodeId, T)) -> visit::vt<T> {
             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<T: Clone>(vfn: @fn(NodeId, T)) -> visit::vt<T> {
             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<T: Clone>(vfn: @fn(NodeId, T)) -> visit::vt<T> {
         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<T: Clone>(vfn: @fn(NodeId, T)) -> visit::vt<T> {
                 }
             }
 
-            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));
index 3c560d211fd2733150379ba6d4c96b059eb0dffb..615b47e56813b58d063d8abf18e1ff677ba0f862 100644 (file)
@@ -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<AM: AttrMetaMethods, It: Iterator<AM>>
 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)
index a9499881cff6a95b741392a1fed16c993cf6284d..d89057890f1e9e93360775fcc4b628ef5911ea91 100644 (file)
@@ -379,7 +379,7 @@ pub fn span_to_snippet(&self, sp: span) -> ~str {
     }
 
     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 @@ fn bytepos_to_local_charpos(&self, bpos: BytePos) -> CharPos {
         // 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;
index 8be55ac0dc715eb1b313c249a104b1613b305ef6..4c7c9c0c325570973f7be0a69eb406d7103cbf5f 100644 (file)
@@ -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));
index e1face8a9b339f788e8c9a3194d07c2cdb2f6200..9b2b37fe402a5643be218dd75a4e3dd3a589abdf 100644 (file)
@@ -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));
                     }
                 }
index 900668df117e3cb3ab963dac4817bb843574a61d..e47e3078636780037b9af1568c71b67c38aa20c3 100644 (file)
@@ -18,7 +18,7 @@
 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) => (),
index bde0a345b1022688a232fbd15fa204cd1e7697ee..30dd89b02f1b2585e1063f31bd310446726b3f74 100644 (file)
@@ -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)));
 
index 1f969b4e0781fede90ebdbb715fa48815af7378d..eb425ec029ae2090b1af50453f48eb6c112b9326 100644 (file)
@@ -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);
index 04bbe5ae1d6a968e0e9003239d5ce59ec73cc61f..cb74f152c1e7322fdb6e1424494d78d93fb82b73 100644 (file)
@@ -284,7 +284,7 @@ pub fn expand(&self, cx: @ExtCtxt,
                   _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 @@ fn create_derived_impl(&self, cx: @ExtCtxt, span: span,
 
         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 @@ fn split_self_nonself_args(&self, cx: @ExtCtxt, span: span,
             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 @@ fn expand_struct_method_body(&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 @@ fn build_enum_match(&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 @@ fn build_enum_match(&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<uint, ~[ident]> {
     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 })
             }
index 57a4f0899b528ff63e2c2b7021579e78ceb8e5a4..215d5ca837dd45f38b5ad227bd01cb98ac442a1b 100644 (file)
@@ -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));
     }
 
index 9b544eb0796a26895c8e2095a20ea52e8c88b578..5a1a847fbc0c0cb9c461deb46c86b647898ef914 100644 (file)
@@ -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, @", "));
                 }
index 4855911b9a8243ae35324db07da3b4e5d8cc60e1..dc096a145cc0c46b2489d078d4940d459613a977 100644 (file)
@@ -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))
                     }
                 }
index 855cf47111ae9fb59a21632f4610ba5cb6fda069..d8d114d1338704e47b11ddac1ed5f1e4ff65a93f 100644 (file)
@@ -67,7 +67,7 @@ fn make_rt_path_expr(cx: @ExtCtxt, sp: span, nm: &str) -> @ast::expr {
     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 is_signed_type(cnv: &Conv) -> bool {
           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 log_conv(c: &Conv) {
           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 log_conv(c: &Conv) {
        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) => {
index 6a8f3c89a2f1fd1a238430e5cac5ef1307684a08..b080a730f3e29b0a912c015ebd0283a4260783ee 100644 (file)
@@ -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))
         }
index b046c99d144e6f38a9e2924384035518eb932444..02aef13a3a8293b1add6e4e44e4cb6e7c88a9eee 100644 (file)
@@ -210,7 +210,7 @@ fn to_type_decls(&self, cx: @ExtCtxt) -> ~[@ast::item] {
 
         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 @@ fn to_endpoint_decls(&self, cx: @ExtCtxt,
         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 @@ fn gen_init_bounded(&self, ext_cx: @ExtCtxt) -> @ast::expr {
 
     fn buffer_ty_path(&self, cx: @ExtCtxt) -> ast::Ty {
         let mut params: OptVec<ast::TyParam> = 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 @@ fn gen_buffer_type(&self, cx: @ExtCtxt) -> @ast::item {
         let ext_cx = cx;
         let mut params: OptVec<ast::TyParam> = 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 @@ fn compile(&self, cx: @ExtCtxt) -> @ast::item {
         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));
index c93b89daa40217774a6793ff4425eb3abb764a37..5d2ebb68b8a0d7e1959a9adf75d5fedb0c9ee5f0 100644 (file)
@@ -107,7 +107,7 @@ pub fn to_ty(&self, cx: @ExtCtxt) -> ast::Ty {
     /// 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 @@ pub fn num_states(&self) -> uint {
     }
 
     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;
             }
index 1439f4cabab14cd3d5aa8cc62089fd283a0448c7..bcfd898dc6fda7288ab2444867c866fa9661501d 100644 (file)
@@ -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
index 9d9155ff0d52173ffe05c6c9cc96deffeb08390e..66965f00215039d45f96a51007d2f134172e2da9 100644 (file)
@@ -138,7 +138,7 @@ pub fn count_names(ms: &[matcher]) -> uint {
 pub fn initial_matcher_pos(ms: ~[matcher], sep: Option<Token>, 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 @@ fn n_rec(p_s: @mut ParseSess, m: &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 @@ fn n_rec(p_s: @mut ParseSess, m: &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));
index 4b3c8498380cc10f9412e37d697e5c4bffff05cd..304cf4756e116841563dced2c5d09ff657ae7b56 100644 (file)
@@ -93,7 +93,7 @@ fn generic_extension(cx: @ExtCtxt, sp: span, name: ident,
 
         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
index e3ca36ac12d9e3ff5ecc5d95695fce93478ef13e..f0b00f5681c5b87a0b33e1b5a6ce8e32e1627af6 100644 (file)
@@ -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)
index 6daeb1b3e1e9e94e44ff0c19dc1e7f2089976a8d..c5454a2ca95d29356809cba6d401ffe2ea7e9793 100644 (file)
@@ -73,8 +73,8 @@ fn horizontal_trim(lines: ~[~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;
index 1614a303d950724b9dd6f3b32c007e8b7e3bf02a..3259d49fcd10d64fd0211f5664977497c08f011d 100644 (file)
@@ -837,7 +837,7 @@ fn setup(teststr: @str) -> Env {
     // 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);
index 9444c4636864c80c2b33e708a86a6064b087c3b4..1d61c5be83d746d564d2dd6955b65384bccf6c52 100644 (file)
@@ -3150,7 +3150,7 @@ fn parse_block_tail_(&self, lo: BytePos, s: BlockCheckMode,
         } = 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 @@ fn parse_item_struct(&self) -> item_info {
             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 @@ fn eval_src_mod_from_path(&self,
             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 @@ fn parse_struct_def(&self) -> @struct_def {
         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 @@ fn parse_enum_def(&self, _generics: &ast::Generics) -> enum_def {
                     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 @@ fn parse_opt_abis(&self) -> Option<AbiSet> {
                 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) {
index 3365222036ca4b71997d32dbe8b0de75445cf697..706357320a5f4d0f5cc80139209c35e6901cdff6 100644 (file)
@@ -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",
index 7e0e63a29ace49f58dff93467b1117dab509ca8f..a4666847f8c269db26b567a2795f63753976dc2a 100644 (file)
@@ -321,7 +321,7 @@ pub fn synth_comment(s: @ps, text: ~str) {
 pub fn commasep<T>(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<T>(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<ast::Lifetime>) {
-    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 @@ fn print_field(s: @ps, field: &ast::Field) {
         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 @@ fn print_field(s: @ps, field: &ast::Field) {
         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 @@ fn print_field(s: @ps, field: &ast::Field) {
       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 @@ fn print_field(s: @ps, field: &ast::Field) {
       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 @@ fn print_field(s: @ps, field: &ast::Field) {
         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 @@ fn print_field(s: @ps, field: &ast::Field) {
             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 @@ fn print_field(s: @ps, f: &ast::field_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<ast::TyParamBound>,
     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);
             }
index 014186c9ff415f44ac527db887b20fdba26120ce..b9c8c3f4e4c89a45bbe65d7faf74b6f7b51a71c3 100644 (file)
@@ -31,7 +31,7 @@ pub fn new() -> Interner<T> {
 
     pub fn prefill(init: &[T]) -> Interner<T> {
         let rv = Interner::new();
-        for init.iter().advance |v| {
+        foreach v in init.iter() {
             rv.intern((*v).clone());
         }
         rv
@@ -93,7 +93,7 @@ pub fn new() -> 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
     }
 
index 07749c7254b696b8925cdb5ec9fc35022659ba89..d988f96d3d46df7d7fd30bec733717309ef854e5 100644 (file)
@@ -126,10 +126,10 @@ pub fn visit_mod<E:Clone>(m: &_mod,
                           _sp: span,
                           _id: NodeId,
                           (e, v): (E, vt<E>)) {
-    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<E:Clone>(i: &item, (e, v): (E, vt<E>)) {
         }
         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<E:Clone>(i: &item, (e, v): (E, vt<E>)) {
         }
         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<E:Clone>(i: &item, (e, v): (E, vt<E>)) {
         }
         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<E:Clone>(i: &item, (e, v): (E, vt<E>)) {
 pub fn visit_enum_def<E:Clone>(enum_definition: &ast::enum_def,
                                tps: &Generics,
                                (e, v): (E, vt<E>)) {
-    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<E:Clone>(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<E:Clone>(t: &Ty, (e, v): (E, vt<E>)) {
             (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<E:Clone>(t: &Ty, (e, v): (E, vt<E>)) {
             };
         },
         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<E:Clone>(t: &Ty, (e, v): (E, vt<E>)) {
 }
 
 pub fn visit_path<E:Clone>(p: &Path, (e, v): (E, vt<E>)) {
-    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<E:Clone>(p: &pat, (e, v): (E, vt<E>)) {
     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<E:Clone>(p: &pat, (e, v): (E, vt<E>)) {
         },
         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<E:Clone>(p: &pat, (e, v): (E, vt<E>)) {
         }
         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<E:Clone>(ni: &foreign_item, (e, v): (E, vt<E>)) {
 
 pub fn visit_ty_param_bounds<E:Clone>(bounds: &OptVec<TyParamBound>,
                                       (e, v): (E, vt<E>)) {
-    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<E:Clone>(bounds: &OptVec<TyParamBound>,
 }
 
 pub fn visit_generics<E:Clone>(generics: &Generics, (e, v): (E, vt<E>)) {
-    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<E:Clone>(fd: &fn_decl, (e, v): (E, vt<E>)) {
-    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<E:Clone>(fk: &fn_kind, decl: &fn_decl, body: &Block, _sp: span,
 }
 
 pub fn visit_ty_method<E:Clone>(m: &TypeMethod, (e, v): (E, vt<E>)) {
-    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<E:Clone>(
     _id: NodeId,
     (e, v): (E, vt<E>)
 ) {
-    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<E:Clone>(sf: &struct_field, (e, v): (E, vt<E>)) {
 }
 
 pub fn visit_block<E:Clone>(b: &Block, (e, v): (E, vt<E>)) {
-    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<E>(eo: Option<@expr>, (e, v): (E, vt<E>)) {
 }
 
 pub fn visit_exprs<E:Clone>(exprs: &[@expr], (e, v): (E, vt<E>)) {
-    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<E>(_m: &mac, (_e, _v): (E, vt<E>)) {
@@ -473,13 +473,13 @@ pub fn visit_expr<E:Clone>(ex: @expr, (e, v): (E, vt<E>)) {
         }
         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<E:Clone>(ex: @expr, (e, v): (E, vt<E>)) {
         }
         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<E:Clone>(ex: @expr, (e, v): (E, vt<E>)) {
         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<E:Clone>(ex: @expr, (e, v): (E, vt<E>)) {
         }
         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<E:Clone>(ex: @expr, (e, v): (E, vt<E>)) {
         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<E:Clone>(ex: @expr, (e, v): (E, vt<E>)) {
 }
 
 pub fn visit_arm<E:Clone>(a: &arm, (e, v): (E, vt<E>)) {
-    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));
 }
index b8e831c4503ec1211d42117378b7e04f67d614c2..85f968cc2e1ca19c2e7ccaa065b2271d4c7bf387 100644 (file)
@@ -28,7 +28,7 @@ pub fn alist_get<A:Clone + 'static,
                  k: A)
                  -> B {
     let eq_fn = lst.eq_fn;
-    for lst.data.iter().advance |entry| {
+    foreach entry in lst.data.iter() {
         if eq_fn(entry.key.clone(), k.clone()) {
             return entry.value.clone();
         }
index 00add20fb7dcd7dfa06cd361761900ebb066d111..10bfb4f60ed632178ec0b650391b38b5cb2a5a7a 100644 (file)
@@ -87,7 +87,7 @@ fn make_graph(N: uint, edges: ~[(node_id, node_id)]) -> graph {
         HashSet::new()
     };
 
-    for edges.iter().advance |e| {
+    foreach e in edges.iter() {
         match *e {
             (i, j) => {
                 graph[i].insert(j);
@@ -98,7 +98,7 @@ fn make_graph(N: uint, edges: ~[(node_id, node_id)]) -> graph {
 
     do graph.consume_iter().transform |v| {
         let mut vec = ~[];
-        for v.consume().advance |i| {
+        foreach i in v.consume() {
             vec.push(i);
         }
         vec
@@ -119,7 +119,7 @@ fn gen_search_keys(graph: &[~[node_id]], n: uint) -> ~[node_id] {
         }
     }
     let mut vec = ~[];
-    for keys.consume().advance |i| {
+    foreach i in keys.consume() {
         vec.push(i);
     }
     return vec;
@@ -435,7 +435,7 @@ fn main() {
     let stop = time::precise_time_s();
 
     let mut total_edges = 0;
-    for graph.iter().advance |edges| { total_edges += edges.len(); }
+    foreach edges in graph.iter() { total_edges += edges.len(); }
 
     io::stdout().write_line(fmt!("Generated graph with %? edges in %? seconds.",
                                  total_edges / 2,
index 9b0fd23d9cb420a2b59d0662ed1ada3c074af8d0..989630448bec038ef43fe3e6bff534917d9fd2cb 100644 (file)
@@ -80,7 +80,7 @@ fn run(args: &[~str]) {
         server(&from_parent, &to_parent);
     }
 
-    for worker_results.iter().advance |r| {
+    foreach r in worker_results.iter() {
         r.recv();
     }
 
index 5ce5e902ed1ef309d28b99c14f9b7db87c1a9a3d..77803ecfc3c07cd67d9a01c1824ad5be955a72cb 100644 (file)
@@ -76,7 +76,7 @@ fn run(args: &[~str]) {
         server(&from_parent, &to_parent);
     }
 
-    for worker_results.iter().advance |r| {
+    foreach r in worker_results.iter() {
         r.recv();
     }
 
index c685057874a0c7444eda7fb329c6400ffb5d046b..621f38035e988fd8f4dce5a7802e2df1a95ea152 100644 (file)
@@ -108,7 +108,7 @@ fn main() {
     thread_ring(0, msg_per_task, num_chan.take(), num_port);
 
     // synchronize
-    for futures.mut_iter().advance |f| {
+    foreach f in futures.mut_iter() {
         f.get()
     }
 
index 9eb415e88923374ebd539912f47656d1a5d9f534..27cd34c5199a17b831a8154af07360ef01c4993c 100644 (file)
@@ -94,7 +94,7 @@ fn main() {
     thread_ring(0, msg_per_task, num_chan.take(), num_port);
 
     // synchronize
-    for futures.mut_iter().advance |f| {
+    foreach f in futures.mut_iter() {
         let _ = f.get();
     }
 
index e7def11b2663ee5f4a798719355f627f849da347..609a160aa5d47219c6936d7f6cf1368857977764 100644 (file)
@@ -104,7 +104,7 @@ fn main() {
     thread_ring(0, msg_per_task, num_chan.take(), num_port);
 
     // synchronize
-    for futures.mut_iter().advance |f| {
+    foreach f in futures.mut_iter() {
         let _ = f.get();
     }
 
index f218b963aaa31e3461dcf15b844a0d37c7d59176..52548f40f8291f591b3809502c7dcdb9140afeb6 100644 (file)
@@ -22,8 +22,8 @@
 
 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);
     }
 
index 97c2cba3b9e3146d2d5d1389c996f62dece1633a..35179328c83308cf90c9112648f87ad4c5e306bd 100644 (file)
@@ -29,7 +29,7 @@ fn fannkuch_redux(n: i32) -> i32 {
                 r -= 1;
             }
 
-            for perm.mut_iter().zip(perm1.iter()).advance |(perm_i, perm1_i)| {
+            foreach (perm_i, perm1_i) in perm.mut_iter().zip(perm1.iter()) {
                 *perm_i = *perm1_i;
             }
 
index cc23c0018331596924e414306a541853e86d1128..f2cc364ab1095324a25d2794f87b40d89ba6433d 100644 (file)
@@ -58,7 +58,7 @@
 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 @@ fn new(stdout: *FILE, a: &[AminoAcid]) -> 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 @@ fn rng(&mut self, max: f32) -> f32 {
 
     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;
             }
index 4597212b390eb90cc6bf72a22e2140f401dec1e9..350d139676fd13fa000bbc19113d455a812754f2 100644 (file)
@@ -46,7 +46,7 @@ struct AminoAcids {
 fn make_cumulative(aa: ~[AminoAcids]) -> ~[AminoAcids] {
     let mut cp: u32 = 0u32;
     let mut ans: ~[AminoAcids] = ~[];
-    for aa.iter().advance |a| {
+    foreach a in aa.iter() {
         cp += a.prob;
         ans.push(AminoAcids {ch: a.ch, prob: cp});
     }
index 8b4664ac0606e94dbb049100f9501b4b58f49d2f..6c40ede76825b8cae4dae725369c07bbba72e8da 100644 (file)
@@ -62,7 +62,7 @@ fn sortKV<TT:Clone + Ord, UU:Clone + Ord>(orig: ~[(TT,UU)]) -> ~[(TT,UU)] {
    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 sortKV<TT:Clone + Ord, UU:Clone + Ord>(orig: ~[(TT,UU)]) -> ~[(TT,UU)] {
 
    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());
    }
 }
index 6d04292588d459bc4ca5529234b843d51ca2ec86..3fbebbdb55659db2382e6022e2ff3a520ae5fedb 100644 (file)
@@ -102,7 +102,7 @@ fn advance(bodies: &mut [Planet, ..N_BODIES], dt: f64, steps: i32) {
             }
         }
 
-        for bodies.mut_iter().advance |a| {
+        foreach a in bodies.mut_iter() {
             a.x[0] += dt * a.v[0];
             a.x[1] += dt * a.v[1];
             a.x[2] += dt * a.v[2];
index 6ea22715750c5f1aba4b1cdd05e8b60f6db3f308..9344bb63205666213c4d2646667daa686e794ae6 100644 (file)
@@ -89,7 +89,7 @@ fn stress(num_tasks: int) {
             stress_task(i);
         }
     }
-    for results.iter().advance |r| {
+    foreach r in results.iter() {
         r.recv();
     }
 }
index 388613482c2cfcd17b96fbdb0806fd69d6770cfa..893431e6bb37544b2347427a66e9acf109833840 100644 (file)
@@ -19,16 +19,16 @@ fn A(i: i32, j: i32) -> i32 {
 
 fn dot(v: &[f64], u: &[f64]) -> f64 {
     let mut sum = 0.0;
-    for v.iter().enumerate().advance |(i, &v_i)| {
+    foreach (i, &v_i) in v.iter().enumerate() {
         sum += v_i * u[i];
     }
     sum
 }
 
 fn mult_Av(v: &mut [f64], out: &mut [f64]) {
-    for out.mut_iter().enumerate().advance |(i, out_i)| {
+    foreach (i, out_i) in out.mut_iter().enumerate() {
         let mut sum = 0.0;
-        for v.mut_iter().enumerate().advance |(j, &v_j)| {
+        foreach (j, &v_j) in v.mut_iter().enumerate() {
             sum += v_j / (A(i as i32, j as i32) as f64);
         }
         *out_i = sum;
@@ -36,9 +36,9 @@ fn mult_Av(v: &mut [f64], out: &mut [f64]) {
 }
 
 fn mult_Atv(v: &mut [f64], out: &mut [f64]) {
-    for out.mut_iter().enumerate().advance |(i, out_i)| {
+    foreach (i, out_i) in out.mut_iter().enumerate() {
         let mut sum = 0.0;
-        for v.mut_iter().enumerate().advance |(j, &v_j)| {
+        foreach (j, &v_j) in v.mut_iter().enumerate() {
             sum += v_j / (A(j as i32, i as i32) as f64);
         }
         *out_i = sum;
index 189a0ef9d700b341a1d530bff06188d09a8bb7b8..c535bf7daeaecd46d2937e67cedd1b8cbd2038b9 100644 (file)
@@ -16,7 +16,7 @@ struct Foo {
 
 impl Foo {
     pub fn foo(&mut self, fun: &fn(&int)) {
-        for self.n.iter().advance |f| {
+        foreach f in self.n.iter() {
             fun(f);
         }
     }
index dd72a71b215b68458f11717d75a0dc65a21ea911..c6aa1713db8820776ab1a257181dbe930f709005 100644 (file)
@@ -10,7 +10,7 @@
 
 fn main() {
     let v = @mut [ 1, 2, 3 ];
-    for v.iter().advance |_x| {
+    foreach _x in v.iter() {
         v[1] = 4; //~ ERROR cannot assign
     }
 }
index b5a5eed6a35a21ba723fbb9f58ebc1806ffbd7bd..6fe802b650b17974a289f932fdc7baa2c4bef062 100644 (file)
@@ -15,7 +15,7 @@ trait vec_monad<A> {
 impl<A> vec_monad<A> for ~[A] {
     fn bind<B>(&self, f: &fn(A) -> ~[B]) {
         let mut r = fail!();
-        for self.iter().advance |elt| { r = r + f(*elt); }
+        foreach elt in self.iter() { r = r + f(*elt); }
         //~^ WARNING unreachable expression
         //~^^ ERROR the type of this value must be known
    }
index 59789223bf2597aa85da9d7f4104f9c712723ba8..d1e8d96a76908cc1dc67b5cfa21502df45b6084a 100644 (file)
@@ -14,7 +14,7 @@
 fn fail_len(v: ~[int]) -> uint {
     let mut i = 3;
     fail!();
-    for v.iter().advance |x| { i += 1u; }
+    foreach x in v.iter() { i += 1u; }
     //~^ ERROR: unreachable statement
     return i;
 }
index 7a6b8c5606ba4641ea60f5b35cc592db02cc5055..9fc84c98cf57bb83a9f80a6e39a9a23ed38a9bb7 100644 (file)
@@ -37,7 +37,7 @@ fn main() {
              ('c', 'd'),
              ('e', 'f')];
 
-    for v.iter().advance |&(x,y)| {} // should be OK
+    foreach &(x,y) in v.iter() {} // should be OK
 
     // Make sure none of the errors above were fatal
     let x: char = true; //~ ERROR expected `char` but found `bool`
index a4a488d9edd0b2a7a5c10dce469402a41b6d852a..ef197a10c7d93249907723287f16b535c5003bd9 100644 (file)
@@ -11,7 +11,7 @@
 fn main() {
     let mut xs = ~[1, 2, 3, 4];
 
-    for xs.mut_iter().advance |x| {
+    foreach x in xs.mut_iter() {
         xs.push(1) //~ ERROR cannot borrow `xs` as mutable
     }
 }
index c666950034a01072075b9b54b02612d2fd4ad4cb..d1629885c7a943356161126fba1943e4a79349fc 100644 (file)
@@ -108,7 +108,7 @@ fn main() {
          '\xA0', '\u1680', '\u180E', '\u2000', '\u2001', '\u2002', '\u2003',
          '\u2004', '\u2005', '\u2006', '\u2007', '\u2008', '\u2009', '\u200A',
          '\u2028', '\u2029', '\u202F', '\u205F', '\u3000'];
-    for chars.iter().advance |c| {
+    foreach c in chars.iter() {
         let ws = c.is_whitespace();
         println(fmt!("%? %?" , c , ws));
     }
index f0d46f39cdf9cba980bed076165c9fcf9df21fb9..822a71da3c87e31a37f6ac80bb03f4ff2a1e85c9 100644 (file)
@@ -102,7 +102,7 @@ fn main() {
          '\xA0', '\u1680', '\u180E', '\u2000', '\u2001', '\u2002', '\u2003',
          '\u2004', '\u2005', '\u2006', '\u2007', '\u2008', '\u2009', '\u200A',
          '\u2028', '\u2029', '\u202F', '\u205F', '\u3000'];
-    for chars.iter().advance |c| {
+    foreach c in chars.iter() {
         let ws = c.is_whitespace();
         println(fmt!("%? %?", c , ws));
     }
index 15631337d2a44f8490bf712a16cb9da827081156..750c8dd84954bf9b2d702eb346b47cc7a2c76b0f 100644 (file)
@@ -12,7 +12,7 @@
 
 fn f(v: &[int]) {
     let mut n = 0;
-    for v.iter().advance |e| {
+    foreach e in v.iter() {
         n = *e; // This comment once triggered pretty printer bug
     }
 }
index 185a5a6407c7d70b9b287710b9ac02c64568603c..37ac5f85a9e8cabde557909dc027660562083781 100644 (file)
@@ -11,7 +11,7 @@
 pub fn main() {
     let mut sum = 0;
     let xs = ~[1, 2, 3, 4, 5];
-    for xs.iter().advance |x| {
+    foreach x in xs.iter() {
         sum += *x;
     }
     assert_eq!(sum, 15);
index 466f2def290bf60bf2afadb9435281c75c38fedd..313d5a62554ab421e9dc2411d2a7827a3ef2af75 100644 (file)
@@ -15,7 +15,7 @@ pub fn main() {
     let v = ~[-1f, 0f, 1f, 2f, 3f];
 
     // Statement form does not require parentheses:
-    for v.iter().advance |i| {
+    foreach i in v.iter() {
         info!("%?", *i);
     }
 
index 6da1f9131a50ddbd9e5f486e58f1dbb43727585b..d9c9670c858b1e4dee03da2bc67a5a71a9b10439 100644 (file)
@@ -10,7 +10,7 @@
 
 // xfail-fast
 
-fn iter_vec<T>(v: ~[T], f: &fn(&T)) { for v.iter().advance |x| { f(x); } }
+fn iter_vec<T>(v: ~[T], f: &fn(&T)) { foreach x in v.iter() { f(x); } }
 
 pub fn main() {
     let v = ~[1, 2, 3, 4, 5, 6, 7];
index 3092cd5338c02fb42bf7bcdc9e835bab23e1341a..e51ca5bcc956645ab59b2f5dfc24af676d0c8cf6 100644 (file)
@@ -10,7 +10,7 @@
 
 // xfail-fast
 
-fn iter_vec<T>(v: ~[T], f: &fn(&T)) { for v.iter().advance |x| { f(x); } }
+fn iter_vec<T>(v: ~[T], f: &fn(&T)) { foreach x in v.iter() { f(x); } }
 
 pub fn main() {
     let v = ~[1, 2, 3, 4, 5];
index 21ea875b2f4b5276512a95a0132fbf9bbbd27d81..3b1e28ab915a4bcbd8522514b8df915f1e7d82e8 100644 (file)
@@ -10,7 +10,7 @@
 
 fn sum_slice(x: &[int]) -> int {
     let mut sum = 0;
-    for x.iter().advance |i| { sum += *i; }
+    foreach i in x.iter() { sum += *i; }
     return sum;
 }
 
index 8f74e6cdc299fa3ce0feb496042026dba85ad0dc..c6fc84b2054b96d78dbe5cc57e98bc37d0c0e417 100644 (file)
@@ -10,7 +10,7 @@
 
 fn want_slice(v: &[int]) -> int {
     let mut sum = 0;
-    for v.iter().advance |i| { sum += *i; }
+    foreach i in v.iter() { sum += *i; }
     sum
 }
 
index 612a472cde58dc9750eb8fe2e998e1d4e6e57c41..c6ef71110431c9533a10630143d1ae2d02d0f2f6 100644 (file)
@@ -4,7 +4,7 @@ struct Wizard {
 
 impl Wizard {
     pub fn cast(&mut self) {
-        for self.spells.iter().advance |&spell| {
+        foreach &spell in self.spells.iter() {
             println(spell);
         }
     }
index 85c6f90a742bef6362598216db848ce5bb1192aa..46b6eec6fa627dbe1fdb8fdbd6eed9cdb4ae7fb5 100644 (file)
@@ -17,7 +17,7 @@ pub fn main() {
     loop { i += 1; if i == 20 { break; } }
     assert_eq!(i, 20);
     let xs = [1, 2, 3, 4, 5, 6];
-    for xs.iter().advance |x| {
+    foreach x in xs.iter() {
         if *x == 3 { break; } assert!((*x <= 3));
     }
     i = 0;
@@ -28,7 +28,7 @@ pub fn main() {
         if i >= 10 { break; }
     }
     let ys = ~[1, 2, 3, 4, 5, 6];
-    for ys.iter().advance |x| {
+    foreach x in ys.iter() {
         if *x % 2 == 0 { loop; }
         assert!((*x % 2 != 0));
     }
index f0c5b58d1559ceb9559b71cdd0ccb2895ecced0c..c31b72c1bd9356d25f8b82b4b77c9152412f1e23 100644 (file)
@@ -1,6 +1,6 @@
 fn sum(x: &[int]) -> int {
     let mut sum = 0;
-    for x.iter().advance |y| { sum += *y; }
+    foreach y in x.iter() { sum += *y; }
     return sum;
 }
 
index 45302363c380ce5fc5b73c03738e7b1847fb6b08..07655cf3525043771c6861f913b79504c4821184 100644 (file)
@@ -24,6 +24,6 @@ fn f() { }
 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)() }
 }
index e5cf15367719a065809ce4a6f4eff48e1eca1ffa..0b070a6ec7abb2384caaac42822fc9ee46148cdb 100644 (file)
@@ -25,8 +25,8 @@ pub fn main() {
     // in order for both Ord and TotalOrd
     let es = [e0, e11, e12, e21, e22];
 
-    for es.iter().enumerate().advance |(i, e1)| {
-        for es.iter().enumerate().advance |(j, e2)| {
+    foreach (i, e1) in es.iter().enumerate() {
+        foreach (j, e2) in es.iter().enumerate() {
             let ord = i.cmp(&j);
 
             let eq = i == j;
index 426bfd7eb2f191a02fb64f8bcf195625d321167e..026994590a0ed22ceecfb141357276f84269fe67 100644 (file)
@@ -21,8 +21,8 @@ pub fn main() {
     // in order for both Ord and TotalOrd
     let ss = [s1, s2];
 
-    for ss.iter().enumerate().advance |(i, s1)| {
-        for ss.iter().enumerate().advance |(j, s2)| {
+    foreach (i, s1) in ss.iter().enumerate() {
+        foreach (j, s2) in ss.iter().enumerate() {
             let ord = i.cmp(&j);
 
             let eq = i == j;
index 0acebdf05f4e38851ae03e642bc55870c623e78a..4d7701703db591141d67ed414b541076a65a8a28 100644 (file)
@@ -19,8 +19,8 @@ pub fn main() {
     // in order for both Ord and TotalOrd
     let tss = [ts1, ts2];
 
-    for tss.iter().enumerate().advance |(i, ts1)| {
-        for tss.iter().enumerate().advance |(j, ts2)| {
+    foreach (i, ts1) in tss.iter().enumerate() {
+        foreach (j, ts2) in tss.iter().enumerate() {
             let ord = i.cmp(&j);
 
             let eq = i == j;
index 1b87c16b4b900e3e77ab037271c38e8baa62fa48..10f825e32cd524910082fa484222ed7d1661947c 100644 (file)
@@ -16,10 +16,10 @@ struct Box {
 
 impl Box {
     pub fn set_many(&mut self, xs: &[uint]) {
-        for xs.iter().advance |x| { self.x = *x; }
+        foreach x in xs.iter() { self.x = *x; }
     }
     pub fn set_many2(@mut self, xs: &[uint]) {
-        for xs.iter().advance |x| { self.x = *x; }
+        foreach x in xs.iter() { self.x = *x; }
     }
 }
 
index bb8df4bb33f0eced4a58a2d7c1483a1afed806e9..bf36d86c849ccdf433b62f3f9e7eb65534c52e37 100644 (file)
@@ -10,7 +10,7 @@
 
 pub fn main() {
     let v : &[(int,int)] = &[ (1, 2), (3, 4), (5, 6) ];
-    for v.iter().advance |&(x, y)| {
+    foreach &(x, y) in v.iter() {
         println(y.to_str());
         println(x.to_str());
     }
index bf916dfa2bd250b8384f59ed661b12bb58b53653..68d075834f55128ae84846899481039c13118070 100644 (file)
@@ -8,4 +8,4 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-pub fn main() { let x: ~[int] = ~[]; for x.iter().advance |_| { fail!("moop"); } }
+pub fn main() { let x: ~[int] = ~[]; foreach _ in x.iter() { fail!("moop"); } }
index 532f4bc7ffb195a40dc52055fdb5b1e1cc2d7d95..388f61c1b032fc5521d45c28680e0240ded33a52 100755 (executable)
@@ -15,7 +15,7 @@ trait vec_utils<T> {
 impl<T> vec_utils<T> for ~[T] {
     fn map_<U>(x: &~[T], f: &fn(&T) -> U) -> ~[U] {
         let mut r = ~[];
-        for x.iter().advance |elt| {
+        foreach elt in x.iter() {
             r.push(f(elt));
         }
         r
index ecf6546e741efd56fe2d7386373163b608d2b698..3d41065365ced289093acb2a8ed8e66ee34fe79b 100644 (file)
@@ -31,7 +31,7 @@ mod map_reduce {
     enum ctrl_proto { find_reducer(~[u8], Chan<int>), mapper_done, }
 
     fn start_mappers(ctrl: SharedChan<ctrl_proto>, inputs: ~[~str]) {
-        for inputs.iter().advance |i| {
+        foreach i in inputs.iter() {
             let ctrl = ctrl.clone();
             let i = i.clone();
             task::spawn(|| map_task(ctrl.clone(), i.clone()) );
index 48f40e2eda759af0ff8ea30a8efe06d9cb38d771..092d5e5813bc5e0b3aa8bafb3c6b76d1a8406c0a 100644 (file)
@@ -67,13 +67,13 @@ fn read_board_grid<rdr:'static + io::Reader>(input: rdr) -> ~[~[square]] {
     let mut grid = ~[];
     for input.each_line |line| {
         let mut row = ~[];
-        for line.iter().advance |c| {
+        foreach c in line.iter() {
             row.push(square_from_char(c))
         }
         grid.push(row)
     }
     let width = grid[0].len();
-    for grid.iter().advance |row| { assert!(row.len() == width) }
+    foreach row in grid.iter() { assert!(row.len() == width) }
     grid
 }
 
index 8dcf4ed4a48619f523f4e559000961d08a077d4b..84d3db444e9c513965f13b0d3e170869f173dcec 100644 (file)
@@ -14,7 +14,7 @@ struct trie_node {
 }
 
 fn print_str_vector(vector: ~[~str]) {
-    for vector.iter().advance |string| {
+    foreach string in vector.iter() {
         println(*string);
     }
 }
index 0b49e43235ae496a84bc399e5a3770bfe9ffb57b..7e9b637516fd719760549bd2da7506c31014e034 100644 (file)
@@ -11,7 +11,7 @@
 trait Canvas {
     fn add_point(&self, point: &int);
     fn add_points(&self, shapes: &[int]) {
-        for shapes.iter().advance |pt| {
+        foreach pt in shapes.iter() {
             self.add_point(pt)
         }
     }
index 2465cd3dd59236e77b15c457d3a0a3735e4d370b..b85ddf95a547131a61adb4632e0bd6555c9a4bf9 100644 (file)
@@ -120,7 +120,7 @@ trait Canvas {
     // Unlike interfaces traits support default implementations.
     // Got an ICE as soon as I added this method.
     fn add_points(&mut self, shapes: &[Point]) {
-        for shapes.iter().advance |pt| {self.add_point(*pt)};
+        foreach pt in shapes.iter() {self.add_point(*pt)};
     }
 }
 
index 857ecb3f9cbcfeb70a300c7b4bd12de7858e9022..3bfb2ef38537d174742a7f878c891df25ec601e2 100644 (file)
@@ -102,7 +102,7 @@ enum Result {
   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() );
     }
index 4aa83b853de45518bef149d8cf58670bb58472b7..da46eb421521d49ba5e7858825008c547ac62d89 100644 (file)
@@ -12,7 +12,7 @@
 
 pub fn main() {
     let x = os::args();
-    for x.iter().advance |arg| {
+    foreach arg in x.iter() {
         match arg.clone() {
             s => { }
         }
index c4e73dfcda5f5cabe6715fbb75983d7e2f4305f0..c6002afded75ae01d1c446785abc5409a0f8b4a4 100644 (file)
 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)); }
index aec16e2d47bd62abdfe4c60758c8bf9567df2a91..746487f8aff581492f7417e12ae0c1a55c729e02 100644 (file)
@@ -11,6 +11,6 @@
 pub fn main() {
     let x = ~[10, 20, 30];
     let mut sum = 0;
-    for x.iter().advance |x| { sum += *x; }
+    foreach x in x.iter() { sum += *x; }
     assert_eq!(sum, 60);
 }
index eaf9eafa2a5dcceaca7f5f8d49ff9df0e1ef34fb..316f872b82fd278f3e4dd32e2f9c26ff2c175595 100644 (file)
@@ -19,7 +19,7 @@ trait vec_monad<A> {
 impl<A> vec_monad<A> for ~[A] {
     fn bind<B>(&self, f: &fn(&A) -> ~[B]) -> ~[B] {
         let mut r = ~[];
-        for self.iter().advance |elt| {
+        foreach elt in self.iter() {
             r.push_all_move(f(elt));
         }
         r
index cbbead6dbda3b781c909d57837454cacf700b166..bfb68d296c183237cb83579e664b7d88cdbdc56f 100644 (file)
@@ -65,7 +65,7 @@ pub fn main() {
         calllink10
     ];
     let mut rng = rand::rng();
-    for fns.iter().advance |f| {
+    foreach f in fns.iter() {
         let f = *f;
         let sz = rng.next() % 256u32 + 256u32;
         let frame_backoff = rng.next() % 10u32 + 1u32;
index b0ce6556cb6a6940be674124629829a62abd182e..5de4b74922c81437d5d8f0a8a6fc2c3c94351011 100644 (file)
@@ -16,8 +16,8 @@ fn test1() {
 
 fn test2() {
     let mut ints = [0, ..32];
-    for ints.mut_iter().advance |i| { *i += 22; }
-    for ints.iter().advance |i| { assert!(*i == 22); }
+    foreach i in ints.mut_iter() { *i += 22; }
+    foreach i in ints.iter() { assert!(*i == 22); }
 }
 
 pub fn main() {
index 824cacc620db971670d122e4f5613049d991efeb..706168844f5121a5736cadcafa3eaee68e6d7d68 100644 (file)
@@ -31,7 +31,7 @@ fn push(&mut self, key: K, value: V) {
 
 impl<K:Eq,V:Clone> Index<K,V> for AssociationList<K,V> {
     fn index(&self, index: &K) -> V {
-        for self.pairs.iter().advance |pair| {
+        foreach pair in self.pairs.iter() {
             if pair.key == *index {
                 return pair.value.clone();
             }
index de34d589afc7d65f6cbae398add91993f4a1eac8..0f84adcc9414cead8d909612c098272bbec98d1a 100644 (file)
@@ -27,7 +27,7 @@ fn main() {
         assert_eq!(foos[i], Foo { bar: 1, baz: 2});
     }
 
-    for foos.iter().advance |&foo| {
+    foreach &foo in foos.iter() {
         assert_eq!(foo, Foo { bar: 1, baz: 2 });
     }
 }
index e91537bec3b19d2404229fa11fc01981683438fc..090b5f549d4b3168c01104f2d02eb4a23181b6b6 100644 (file)
@@ -666,7 +666,7 @@ pub fn main() {
         visit_tydesc(td, v);
 
         let r = u.vals.clone();
-        for r.iter().advance |s| {
+        foreach s in r.iter() {
             printfln!("val: %s", *s);
         }
         error!("%?", u.vals.clone());
index dc639bad75efa0e3e20829f0e727d914beef726d..e80dc2269c2f91566f9fad56d027ead263ed0d54 100644 (file)
@@ -170,7 +170,7 @@ pub fn main() {
     visit_ty::<i16>(vv);
     visit_ty::<~[int]>(vv);
 
-    for v.types.iter().advance |s| {
+    foreach s in v.types.iter() {
         printfln!("type: %s", (*s).clone());
     }
     assert_eq!((*v.types).clone(), ~[~"bool", ~"int", ~"i8", ~"i16", ~"[", ~"int", ~"]"]);
index 7486005f7e56dc446606271cf021c445b0b6fc4d..5cb2f9b872799dcea135246d984d799547231574 100644 (file)
@@ -16,7 +16,7 @@ fn foo(c: ~[int]) {
 
     match none::<int> {
         some::<int>(_) => {
-            for c.iter().advance |i| {
+            foreach i in c.iter() {
                 info!(a);
                 let a = 17;
                 b.push(a);
index 1588bd1a5a5418e32fdb61fceb7770950846a569..4f86c87518a1e83b45911fdd2197f1657f5a6d77 100644 (file)
@@ -48,10 +48,10 @@ trait vec_utils<T> {
 
 impl<T> vec_utils<T> for ~[T] {
     fn length_(&self) -> uint { self.len() }
-    fn iter_(&self, f: &fn(&T)) { for self.iter().advance |x| { f(x); } }
+    fn iter_(&self, f: &fn(&T)) { foreach x in self.iter() { f(x); } }
     fn map_<U>(&self, f: &fn(&T) -> U) -> ~[U] {
         let mut r = ~[];
-        for self.iter().advance |elt| {
+        foreach elt in self.iter() {
             r.push(f(elt));
         }
         r
index 6c7405ef441880d461207d1d84322cc4c2a08b92..6b2516f59215641e7931f4f1d5761451f215f31b 100644 (file)
@@ -54,7 +54,7 @@ fn test00() {
 
     // Read from spawned tasks...
     let mut sum = 0;
-    for results.iter().advance |r| {
+    foreach r in results.iter() {
         i = 0;
         while i < number_of_messages {
             let value = po.recv();
@@ -64,7 +64,7 @@ fn test00() {
     }
 
     // Join spawned tasks...
-    for results.iter().advance |r| { r.recv(); }
+    foreach r in results.iter() { r.recv(); }
 
     info!("Completed: Final number is: ");
     error!(sum);
index 0677b63b5aa4f971d879064ab954837242b75926..e0be4ccf810802d34179a9315b6814b5b2e6b730 100644 (file)
@@ -84,20 +84,20 @@ fn main() {
 
 fn check_legs(arc: arc::Arc<~[~Pet:Freeze+Send]>) {
     let mut legs = 0;
-    for arc.get().iter().advance |pet| {
+    foreach pet in arc.get().iter() {
         legs += pet.num_legs();
     }
     assert!(legs == 12);
 }
 fn check_names(arc: arc::Arc<~[~Pet:Freeze+Send]>) {
-    for arc.get().iter().advance |pet| {
+    foreach pet in arc.get().iter() {
         do pet.name |name| {
             assert!(name[0] == 'a' as u8 && name[1] == 'l' as u8);
         }
     }
 }
 fn check_pedigree(arc: arc::Arc<~[~Pet:Freeze+Send]>) {
-    for arc.get().iter().advance |pet| {
+    foreach pet in arc.get().iter() {
         assert!(pet.of_good_pedigree());
     }
 }
index 7a86116d3ecacae5eae7c0f16b3b86a43c91ac61..a5b85681420a103eed4a93f1965f77080153ce21 100644 (file)
@@ -26,7 +26,7 @@ fn count(st: &mut uint) -> Option<uint> {
 
     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;
     }
index 955e6118c830e3bcf8c1ec8772a1325fee04743f..1ebe72d19c11fd8c6a44341ea6d5ccef8f8698f8 100644 (file)
@@ -41,7 +41,7 @@ pub fn main() {
 
     fn check_str_eq(a: ~str, b: ~str) {
         let mut i: int = 0;
-        for a.byte_iter().advance |ab| {
+        foreach ab in a.byte_iter() {
             info!(i);
             info!(ab);
             let bb: u8 = b[i];