diff options
Diffstat (limited to 'crates/ra_project_model/src/lib.rs')
-rw-r--r-- | crates/ra_project_model/src/lib.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/crates/ra_project_model/src/lib.rs b/crates/ra_project_model/src/lib.rs index 647a1f365..8e81396d4 100644 --- a/crates/ra_project_model/src/lib.rs +++ b/crates/ra_project_model/src/lib.rs | |||
@@ -112,8 +112,7 @@ impl ProjectWorkspace { | |||
112 | roots | 112 | roots |
113 | } | 113 | } |
114 | ProjectWorkspace::Cargo { cargo, sysroot } => { | 114 | ProjectWorkspace::Cargo { cargo, sysroot } => { |
115 | let mut roots = | 115 | let mut roots = Vec::with_capacity(cargo.packages().len() + sysroot.crates().len()); |
116 | Vec::with_capacity(cargo.packages().count() + sysroot.crates().count()); | ||
117 | for pkg in cargo.packages() { | 116 | for pkg in cargo.packages() { |
118 | let root = pkg.root(&cargo).to_path_buf(); | 117 | let root = pkg.root(&cargo).to_path_buf(); |
119 | let member = pkg.is_member(&cargo); | 118 | let member = pkg.is_member(&cargo); |
@@ -127,10 +126,12 @@ impl ProjectWorkspace { | |||
127 | } | 126 | } |
128 | } | 127 | } |
129 | 128 | ||
130 | pub fn count(&self) -> usize { | 129 | pub fn n_packages(&self) -> usize { |
131 | match self { | 130 | match self { |
132 | ProjectWorkspace::Json { project } => project.crates.len(), | 131 | ProjectWorkspace::Json { project } => project.crates.len(), |
133 | ProjectWorkspace::Cargo { cargo, .. } => cargo.packages().count(), | 132 | ProjectWorkspace::Cargo { cargo, sysroot } => { |
133 | cargo.packages().len() + sysroot.crates().len() | ||
134 | } | ||
134 | } | 135 | } |
135 | } | 136 | } |
136 | 137 | ||