about summary refs log tree commit diff
path: root/src/tools
diff options
context:
space:
mode:
authorduncan <duncan@thorny.io>2025-04-11 15:03:38 +0100
committerduncan <duncan@thorny.io>2025-04-11 15:03:38 +0100
commitd8ecbccc4e961e5aa314f01fd6b933b7c928a217 (patch)
treefb047579521784218b3fec0dda279025f0b281d2 /src/tools
parent35bb73aa8c362151a2719920494807ee6c1ebbc7 (diff)
downloadrust-d8ecbccc4e961e5aa314f01fd6b933b7c928a217.tar.gz
rust-d8ecbccc4e961e5aa314f01fd6b933b7c928a217.zip
test only packages that are workspace members
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/rust-analyzer/crates/rust-analyzer/src/handlers/request.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/tools/rust-analyzer/crates/rust-analyzer/src/handlers/request.rs b/src/tools/rust-analyzer/crates/rust-analyzer/src/handlers/request.rs
index 7427a3bbaa3..a3238483264 100644
--- a/src/tools/rust-analyzer/crates/rust-analyzer/src/handlers/request.rs
+++ b/src/tools/rust-analyzer/crates/rust-analyzer/src/handlers/request.rs
@@ -203,7 +203,7 @@ pub(crate) fn handle_view_item_tree(
 //   underscores. cargo test requires the real name.
 // - the target kind e.g. bin or lib
 fn find_test_target(namespace_root: &str, cargo: &CargoWorkspace) -> Option<TestTarget> {
-    cargo.packages().find_map(|p| {
+    cargo.packages().filter(|p| cargo[*p].is_member).find_map(|p| {
         let package_name = &cargo[p].name;
         for target in cargo[p].targets.iter() {
             let target_name = &cargo[*target].name;
@@ -222,6 +222,7 @@ fn find_test_target(namespace_root: &str, cargo: &CargoWorkspace) -> Option<Test
 fn get_all_targets(cargo: &CargoWorkspace) -> Vec<TestTarget> {
     cargo
         .packages()
+        .filter(|p| cargo[*p].is_member)
         .flat_map(|p| {
             let package_name = &cargo[p].name;
             cargo[p].targets.iter().map(|target| {