Skip to content

Commit 4f21500

Browse files
authored
Merge pull request #3054 from matklad/simplify
Replace for loop with iterators
2 parents c7ffb3e + 143be56 commit 4f21500

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

src/cargo/core/resolver/encode.rs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -96,18 +96,15 @@ impl EncodableResolve {
9696
g
9797
};
9898

99-
let replacements = {
100-
let mut replacements = HashMap::new();
101-
for &(ref id, ref pkg) in live_pkgs.values() {
102-
if let Some(ref replace) = pkg.replace {
103-
assert!(pkg.dependencies.is_none());
104-
if let Some(replace_id) = try!(lookup_id(replace)) {
105-
replacements.insert(id.clone(), replace_id);
106-
}
99+
let replacements: HashMap<_, _> = try!(live_pkgs.values()
100+
.filter_map(|&(ref id, pkg)| pkg.replace.as_ref().and_then(|replace| {
101+
assert!(pkg.dependencies.is_none());
102+
match lookup_id(replace) {
103+
Err(e) => Some(Err(e)),
104+
Ok(None) => None,
105+
Ok(Some(replace)) => Some(Ok((id.clone(), replace)))
107106
}
108-
}
109-
replacements
110-
};
107+
})).collect());
111108

112109
let mut metadata = self.metadata.unwrap_or(BTreeMap::new());
113110

0 commit comments

Comments
 (0)