Skip to content

Commit a90401a

Browse files
committed
Migrate to iters some more
1 parent 987fb26 commit a90401a

File tree

1 file changed

+11
-18
lines changed
  • crates/ra_project_model/src

1 file changed

+11
-18
lines changed

crates/ra_project_model/src/lib.rs

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -152,24 +152,17 @@ impl ProjectWorkspace {
152152

153153
pub fn proc_macro_dylib_paths(&self) -> Vec<PathBuf> {
154154
match self {
155-
ProjectWorkspace::Json { project } => {
156-
let mut proc_macro_dylib_paths = Vec::with_capacity(project.crates.len());
157-
for krate in &project.crates {
158-
if let Some(out_dir) = &krate.proc_macro_dylib_path {
159-
proc_macro_dylib_paths.push(out_dir.to_path_buf());
160-
}
161-
}
162-
proc_macro_dylib_paths
163-
}
164-
ProjectWorkspace::Cargo { cargo, sysroot: _sysroot } => {
165-
let mut proc_macro_dylib_paths = Vec::with_capacity(cargo.packages().len());
166-
for pkg in cargo.packages() {
167-
if let Some(dylib_path) = &cargo[pkg].proc_macro_dylib_path {
168-
proc_macro_dylib_paths.push(dylib_path.to_path_buf());
169-
}
170-
}
171-
proc_macro_dylib_paths
172-
}
155+
ProjectWorkspace::Json { project } => project
156+
.crates
157+
.iter()
158+
.filter_map(|krate| krate.proc_macro_dylib_path.as_ref())
159+
.cloned()
160+
.collect(),
161+
ProjectWorkspace::Cargo { cargo, sysroot: _sysroot } => cargo
162+
.packages()
163+
.filter_map(|pkg| cargo[pkg].proc_macro_dylib_path.as_ref())
164+
.cloned()
165+
.collect(),
173166
}
174167
}
175168

0 commit comments

Comments
 (0)