]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc/metadata/loader.rs
rollup merge of #17355 : gamazeps/issue17210
[rust.git] / src / librustc / metadata / loader.rs
index cd8ebf5081ba72533dcf6aca8308063ec93f2750..f63705bfb9901dd792e47dea25929c877dfacce0 100644 (file)
 
 use std::c_str::ToCStr;
 use std::cmp;
+use std::io::fs::PathExtensions;
 use std::io;
 use std::mem;
 use std::ptr;
@@ -448,7 +449,7 @@ fn find_library_crate(&mut self) -> Option<Library> {
         // libraries corresponds to the crate id and hash criteria that this
         // search is being performed for.
         let mut libraries = Vec::new();
-        for (_hash, (rlibs, dylibs)) in candidates.move_iter() {
+        for (_hash, (rlibs, dylibs)) in candidates.into_iter() {
             let mut metadata = None;
             let rlib = self.extract_one(rlibs, "rlib", &mut metadata);
             let dylib = self.extract_one(dylibs, "dylib", &mut metadata);
@@ -469,7 +470,7 @@ fn find_library_crate(&mut self) -> Option<Library> {
         // libraries or not.
         match libraries.len() {
             0 => None,
-            1 => Some(libraries.move_iter().next().unwrap()),
+            1 => Some(libraries.into_iter().next().unwrap()),
             _ => {
                 self.sess.span_err(self.span,
                     format!("multiple matching crates for `{}`",
@@ -520,11 +521,11 @@ fn extract_one(&mut self, m: HashSet<Path>, flavor: &str,
             if m.len() == 0 {
                 return None
             } else if m.len() == 1 {
-                return Some(m.move_iter().next().unwrap())
+                return Some(m.into_iter().next().unwrap())
             }
         }
 
-        for lib in m.move_iter() {
+        for lib in m.into_iter() {
             info!("{} reading metadata from: {}", flavor, lib.display());
             let metadata = match get_metadata_section(self.os, &lib) {
                 Ok(blob) => {
@@ -666,9 +667,9 @@ fn find_commandline_library(&mut self) -> Option<Library> {
         let mut dylibs = HashSet::new();
         for loc in locs {
             if loc.filename_str().unwrap().ends_with(".rlib") {
-                rlibs.insert(loc.clone());
+                rlibs.insert(fs::realpath(&loc).unwrap());
             } else {
-                dylibs.insert(loc.clone());
+                dylibs.insert(fs::realpath(&loc).unwrap());
             }
         }