Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/project-model/src/build_dependencies.rs')
| -rw-r--r-- | crates/project-model/src/build_dependencies.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/crates/project-model/src/build_dependencies.rs b/crates/project-model/src/build_dependencies.rs index 9888984934..5bea74bed7 100644 --- a/crates/project-model/src/build_dependencies.rs +++ b/crates/project-model/src/build_dependencies.rs @@ -35,7 +35,7 @@ pub struct WorkspaceBuildScripts { #[derive(Debug, Clone, Default, PartialEq, Eq)] pub enum ProcMacroDylibPath { Path(AbsPathBuf), - DylibNotFound(Box<[Utf8PathBuf]>), + DylibNotFound, NotProcMacro, #[default] NotBuilt, @@ -251,7 +251,7 @@ impl WorkspaceBuildScripts { }) { match proc_macro_dylibs.iter().find(|(name, _)| *name == package.name) { Some((_, path)) => ProcMacroDylibPath::Path(path.clone()), - _ => ProcMacroDylibPath::DylibNotFound(Box::default()), + _ => ProcMacroDylibPath::DylibNotFound, } } else { ProcMacroDylibPath::NotProcMacro @@ -386,7 +386,11 @@ impl WorkspaceBuildScripts { if data.proc_macro_dylib_path == ProcMacroDylibPath::NotBuilt { data.proc_macro_dylib_path = ProcMacroDylibPath::NotProcMacro; } - if message.target.kind.contains(&cargo_metadata::TargetKind::ProcMacro) + if !matches!(data.proc_macro_dylib_path, ProcMacroDylibPath::Path(_)) + && message + .target + .kind + .contains(&cargo_metadata::TargetKind::ProcMacro) { data.proc_macro_dylib_path = match message.filenames.iter().find(|file| is_dylib(file)) { @@ -394,9 +398,7 @@ impl WorkspaceBuildScripts { let filename = AbsPath::assert(filename); ProcMacroDylibPath::Path(filename.to_owned()) } - None => ProcMacroDylibPath::DylibNotFound( - message.filenames.clone().into_boxed_slice(), - ), + None => ProcMacroDylibPath::DylibNotFound, }; } }); |