about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWilfred Hughes <wilfred@meta.com>2024-03-27 10:33:20 -0700
committerWilfred Hughes <wilfred@meta.com>2024-03-27 10:33:20 -0700
commit5e370b1cb842e2e29a3fc3b8a599cee5b6040a02 (patch)
treebb97ec0cbcefddb9719d84886837e19660a32c5e
parent4b33850c39049047e2deb4269b60bd8330b68031 (diff)
downloadrust-5e370b1cb842e2e29a3fc3b8a599cee5b6040a02.tar.gz
rust-5e370b1cb842e2e29a3fc3b8a599cee5b6040a02.zip
Use crate root to choose relevant workspace for flycheck
-rw-r--r--crates/project-model/src/project_json.rs2
-rw-r--r--crates/rust-analyzer/src/handlers/notification.rs7
2 files changed, 4 insertions, 5 deletions
diff --git a/crates/project-model/src/project_json.rs b/crates/project-model/src/project_json.rs
index 512588cc8f8..54674a6f0f1 100644
--- a/crates/project-model/src/project_json.rs
+++ b/crates/project-model/src/project_json.rs
@@ -74,7 +74,7 @@ pub struct ProjectJson {
 #[derive(Clone, Debug, Eq, PartialEq)]
 pub struct Crate {
     pub(crate) display_name: Option<CrateDisplayName>,
-    pub(crate) root_module: AbsPathBuf,
+    pub root_module: AbsPathBuf,
     pub(crate) edition: Edition,
     pub(crate) version: Option<String>,
     pub(crate) deps: Vec<Dependency>,
diff --git a/crates/rust-analyzer/src/handlers/notification.rs b/crates/rust-analyzer/src/handlers/notification.rs
index b5c4a4f435e..3b232578185 100644
--- a/crates/rust-analyzer/src/handlers/notification.rs
+++ b/crates/rust-analyzer/src/handlers/notification.rs
@@ -296,10 +296,9 @@ fn run_flycheck(state: &mut GlobalState, vfs_path: VfsPath) -> bool {
                         })
                     }
                     project_model::ProjectWorkspace::Json { project, .. } => {
-                        if !project
-                            .crates()
-                            .any(|(c, _)| crate_ids.iter().any(|&crate_id| crate_id == c))
-                        {
+                        if !project.crates().any(|(_, krate)| {
+                            crate_root_paths.contains(&krate.root_module.as_path())
+                        }) {
                             return None;
                         }
                         None