File tree Expand file tree Collapse file tree 1 file changed +11
-18
lines changed
crates/ra_project_model/src Expand file tree Collapse file tree 1 file changed +11
-18
lines changed Original file line number Diff line number Diff line change @@ -152,24 +152,17 @@ impl ProjectWorkspace {
152
152
153
153
pub fn proc_macro_dylib_paths ( & self ) -> Vec < PathBuf > {
154
154
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 ( ) ,
173
166
}
174
167
}
175
168
You can’t perform that action at this time.
0 commit comments