Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/project-model/src/workspace.rs')
| -rw-r--r-- | crates/project-model/src/workspace.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/crates/project-model/src/workspace.rs b/crates/project-model/src/workspace.rs index 1fd7c68193..fa966f70aa 100644 --- a/crates/project-model/src/workspace.rs +++ b/crates/project-model/src/workspace.rs @@ -707,7 +707,7 @@ fn project_json_to_crate_graph( if let Some(path) = krate.proc_macro_dylib_path.clone() { proc_macros.insert( crate_id, - Ok(( + Some(( krate.display_name.as_ref().map(|it| it.canonical_name().to_owned()), path, )), @@ -1185,12 +1185,14 @@ fn add_target_crate_root( CrateOrigin::CratesIo { repo: pkg.repository.clone(), name: Some(pkg.name.clone()) }, target_layout, ); - let proc_macro = match build_data.as_ref().map(|it| &it.proc_macro_dylib_path) { - Some(it) => it.clone().map(Ok), - None => Some(Err("crate has not (yet) been built".into())), - }; - if let Some(proc_macro) = proc_macro { - proc_macros.insert(crate_id, proc_macro.map(|path| (Some(cargo_name.to_owned()), path))); + if is_proc_macro { + let proc_macro = match build_data.as_ref().map(|it| it.proc_macro_dylib_path.as_ref()) { + Some(it) => it.cloned().map(|path| Some((Some(cargo_name.to_owned()), path))), + None => Some(None), + }; + if let Some(proc_macro) = proc_macro { + proc_macros.insert(crate_id, proc_macro); + } } crate_id |