]> git.lizzy.rs Git - rust.git/commit
Only include targets of packages that are workspace members
authorBrendan Cully <brendan@cully.org>
Sun, 10 Oct 2021 02:49:34 +0000 (19:49 -0700)
committerBrendan Cully <brendan@cully.org>
Tue, 12 Oct 2021 01:28:05 +0000 (18:28 -0700)
commit841d4f9dad7edbb9b239dfa6c6a14dcfe5d94ad3
tree247878e18525a6fe8cb750827c466b7e9e67b188
parent098284aec8c8282e77682deace6c61603a88ee01
Only include targets of packages that are workspace members

CargoWorkspace's package list includes packages that are path
dependencies, even if those packages aren't actually members of the
cargo workspace. As a result, rust-analyzer's runnable finder, which
returns the target from the first workspace that has a matching package,
may select the wrong working directory, causing runnables to fail, e.g.,
```
error: package `root` cannot be tested because it requires dev-dependencies and is not a member of the workspace
```

To fix this, we filter out packages that aren't members of the workspace
when searching for targets.

Fixes #7764
crates/project_model/src/cargo_workspace.rs
crates/rust-analyzer/tests/slow-tests/main.rs