about summary refs log tree commit diff
path: root/src/librustc/metadata
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-06-21 01:49:50 -0700
committerbors <bors@rust-lang.org>2013-06-21 01:49:50 -0700
commitb0e3ffd3805203420846296bc7d5a3c13dfd8b3a (patch)
tree791c56423464c90ff6f14a56992ae62f621d4665 /src/librustc/metadata
parentba05af7b1cbb5ccf25226ca5cd8d84f872426466 (diff)
parent06bec77fafb1c30052b9c69a3fb17b2835cb608f (diff)
downloadrust-b0e3ffd3805203420846296bc7d5a3c13dfd8b3a.tar.gz
rust-b0e3ffd3805203420846296bc7d5a3c13dfd8b3a.zip
auto merge of #7263 : thestinger/rust/iterator, r=graydon
Diffstat (limited to 'src/librustc/metadata')
-rw-r--r--src/librustc/metadata/creader.rs20
-rw-r--r--src/librustc/metadata/cstore.rs2
-rw-r--r--src/librustc/metadata/encoder.rs3
3 files changed, 13 insertions, 12 deletions
diff --git a/src/librustc/metadata/creader.rs b/src/librustc/metadata/creader.rs
index e95c841b9f7..c8b0f4a488a 100644
--- a/src/librustc/metadata/creader.rs
+++ b/src/librustc/metadata/creader.rs
@@ -85,16 +85,16 @@ fn warn_if_multiple_versions(e: @mut Env,
             *crate_cache[crate_cache.len() - 1].metas
         );
 
-        let (matches, non_matches) =
-            partition(crate_cache.map_to_vec(|&entry| {
-                let othername = loader::crate_name_from_metas(
-                    copy *entry.metas);
-                if name == othername {
-                    Left(entry)
-                } else {
-                    Right(entry)
-                }
-            }));
+        let vec: ~[Either<cache_entry, cache_entry>] = crate_cache.iter().transform(|&entry| {
+            let othername = loader::crate_name_from_metas(
+                copy *entry.metas);
+            if name == othername {
+                Left(entry)
+            } else {
+                Right(entry)
+            }
+        }).collect();
+        let (matches, non_matches) = partition(vec);
 
         assert!(!matches.is_empty());
 
diff --git a/src/librustc/metadata/cstore.rs b/src/librustc/metadata/cstore.rs
index 2819340ae45..399ad215fdb 100644
--- a/src/librustc/metadata/cstore.rs
+++ b/src/librustc/metadata/cstore.rs
@@ -104,7 +104,7 @@ pub fn get_used_crate_files(cstore: &CStore) -> ~[Path] {
 pub fn add_used_library(cstore: &mut CStore, lib: @str) -> bool {
     assert!(!lib.is_empty());
 
-    if cstore.used_libraries.contains(&lib) { return false; }
+    if cstore.used_libraries.iter().any_(|x| x == &lib) { return false; }
     cstore.used_libraries.push(lib);
     true
 }
diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs
index 5d5d7582b5f..bc2e95f4d1b 100644
--- a/src/librustc/metadata/encoder.rs
+++ b/src/librustc/metadata/encoder.rs
@@ -1014,7 +1014,8 @@ fn encode_info_for_item(ecx: &EncodeContext,
         ebml_w.end_tag();
 
         // Now output the method info for each method.
-        for ty::trait_method_def_ids(tcx, local_def(item.id)).eachi |i, &method_def_id| {
+        let r = ty::trait_method_def_ids(tcx, local_def(item.id));
+        for r.iter().enumerate().advance |(i, &method_def_id)| {
             assert_eq!(method_def_id.crate, ast::local_crate);
 
             let method_ty = ty::method(tcx, method_def_id);