Don't filter flychecks by package member status

This commit is contained in:
Lukas Wirth 2022-07-20 11:52:44 +02:00
parent 25391e6d44
commit d73b0d5fc6

View File

@ -745,25 +745,24 @@ impl GlobalState {
let workspace_ids = let workspace_ids =
this.workspaces.iter().enumerate().filter(|(_, ws)| match ws { this.workspaces.iter().enumerate().filter(|(_, ws)| match ws {
project_model::ProjectWorkspace::Cargo { cargo, .. } => { project_model::ProjectWorkspace::Cargo { cargo, .. } => {
cargo.packages().filter(|&pkg| cargo[pkg].is_member).any( cargo.packages().any(|pkg| {
|pkg| { cargo[pkg]
cargo[pkg].targets.iter().any(|&it| { .targets
paths.contains(&cargo[it].root.as_path()) .iter()
.any(|&it| paths.contains(&cargo[it].root.as_path()))
}) })
},
)
} }
project_model::ProjectWorkspace::Json { project, .. } => project project_model::ProjectWorkspace::Json { project, .. } => project
.crates() .crates()
.any(|(c, _)| crate_ids.iter().any(|&crate_id| crate_id == c)), .any(|(c, _)| crate_ids.iter().any(|&crate_id| crate_id == c)),
project_model::ProjectWorkspace::DetachedFiles { .. } => false, project_model::ProjectWorkspace::DetachedFiles { .. } => false,
}); });
'workspace: for (id, _) in workspace_ids {
for flycheck in &this.flycheck { for flycheck in &this.flycheck {
for (id, _) in workspace_ids.clone() {
if id == flycheck.id() { if id == flycheck.id() {
updated = true; updated = true;
flycheck.update(); flycheck.update();
continue 'workspace; continue;
} }
} }
} }