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 | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/crates/project-model/src/workspace.rs b/crates/project-model/src/workspace.rs index 5f23d9fe82..b6f79b4622 100644 --- a/crates/project-model/src/workspace.rs +++ b/crates/project-model/src/workspace.rs @@ -691,7 +691,7 @@ fn project_json_to_crate_graph( target_layout: TargetLayoutLoadResult, ) -> (CrateGraph, ProcMacroPaths) { let mut crate_graph = CrateGraph::default(); - let mut proc_macros = FxHashMap::default(); + let mut proc_macros: ProcMacroPaths = FxHashMap::default(); let sysroot_deps = sysroot.as_ref().map(|sysroot| { sysroot_to_crate_graph( &mut crate_graph, @@ -743,13 +743,11 @@ fn project_json_to_crate_graph( ); if krate.is_proc_macro { if let Some(path) = krate.proc_macro_dylib_path.clone() { - proc_macros.insert( - crate_graph_crate_id, - Some(( - krate.display_name.as_ref().map(|it| it.canonical_name().to_owned()), - path, - )), - ); + let node = Ok(( + krate.display_name.as_ref().map(|it| it.canonical_name().to_owned()), + path, + )); + proc_macros.insert(crate_graph_crate_id, node); } } (crate_id, crate_graph_crate_id) @@ -1193,8 +1191,8 @@ fn add_target_crate_root( ); 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), + Some(it) => it.cloned().map(|path| Ok((Some(cargo_name.to_owned()), path))), + None => Some(Err("crate has not yet been build".to_owned())), }; if let Some(proc_macro) = proc_macro { proc_macros.insert(crate_id, proc_macro); |