Skip to content

Commit 37fd5d0

Browse files
committed
---
yaml --- r: 106122 b: refs/heads/auto c: 0305ed5 h: refs/heads/master v: v3
1 parent dfb45b8 commit 37fd5d0

File tree

6 files changed

+21
-61
lines changed

6 files changed

+21
-61
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1313
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1414
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1515
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
16-
refs/heads/auto: c01e2f05a3ef27e464d1f0057ddabcde6ffde70c
16+
refs/heads/auto: 0305ed5d22e4a70e819c7e5989d8af7dafb3288e
1717
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1818
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1919
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336

branches/auto/src/librustc/metadata/loader.rs

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -284,46 +284,38 @@ impl<'a> Context<'a> {
284284
// reading dylib metadata is quite slow.
285285
fn extract_one(&mut self, m: HashSet<Path>, flavor: &str,
286286
slot: &mut Option<MetadataBlob>) -> Option<Path> {
287-
let mut ret = None::<Path>;
288-
let mut error = 0;
287+
if m.len() == 0 { return None }
288+
if m.len() > 1 {
289+
self.sess.span_err(self.span,
290+
format!("multiple {} candidates for `{}` \
291+
found", flavor, self.crate_id.name));
292+
for (i, path) in m.iter().enumerate() {
293+
self.sess.span_note(self.span,
294+
format!(r"candidate \#{}: {}", i + 1,
295+
path.display()));
296+
}
297+
return None
298+
}
289299

290-
for lib in m.move_iter() {
300+
let lib = m.move_iter().next().unwrap();
301+
if slot.is_none() {
291302
info!("{} reading metadata from: {}", flavor, lib.display());
292-
let metadata = match get_metadata_section(self.os, &lib) {
303+
match get_metadata_section(self.os, &lib) {
293304
Ok(blob) => {
294305
if self.crate_matches(blob.as_slice()) {
295-
blob
306+
*slot = Some(blob);
296307
} else {
297308
info!("metadata mismatch");
298-
continue
309+
return None;
299310
}
300311
}
301312
Err(_) => {
302313
info!("no metadata found");
303-
continue
314+
return None
304315
}
305-
};
306-
if ret.is_some() {
307-
self.sess.span_err(self.span,
308-
format!("multiple {} candidates for `{}` \
309-
found", flavor, self.crate_id.name));
310-
self.sess.span_note(self.span,
311-
format!(r"candidate \#1: {}",
312-
ret.get_ref().display()));
313-
error = 1;
314-
ret = None;
315-
}
316-
if error > 0 {
317-
error += 1;
318-
self.sess.span_note(self.span,
319-
format!(r"candidate \#{}: {}", error,
320-
lib.display()));
321-
continue
322316
}
323-
*slot = Some(metadata);
324-
ret = Some(lib);
325317
}
326-
return if error > 0 {None} else {ret}
318+
return Some(lib);
327319
}
328320

329321
fn crate_matches(&mut self, crate_data: &[u8]) -> bool {

branches/auto/src/libstd/prelude.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ pub use slice::{ImmutableEqVector, ImmutableTotalOrdVector, ImmutableCloneableVe
5959
pub use slice::{OwnedVector, OwnedCloneableVector, OwnedEqVector};
6060
pub use slice::{MutableVector, MutableTotalOrdVector};
6161
pub use slice::{Vector, VectorVector, CloneableVector, ImmutableVector};
62+
pub use vec::Vec;
6263

6364
// Reexported runtime types
6465
pub use comm::{channel, Sender, Receiver};

branches/auto/src/test/run-make/suspicious-library/Makefile

Lines changed: 0 additions & 7 deletions
This file was deleted.

branches/auto/src/test/run-make/suspicious-library/bar.rs

Lines changed: 0 additions & 13 deletions
This file was deleted.

branches/auto/src/test/run-make/suspicious-library/foo.rs

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)