Unnamed repository; edit this file 'description' to name the repository.
Merge pull request #18949 from Veykril/push-yzklntsnnuts
Partially back out "fix: Fix sourceroot construction for virtual manifests"
Lukas Wirth 2025-01-16
parent 9c7d8bb · parent 52a6f43 · commit 954ed7b
-rw-r--r--crates/load-cargo/src/lib.rs5
-rw-r--r--crates/project-model/src/workspace.rs13
2 files changed, 5 insertions, 13 deletions
diff --git a/crates/load-cargo/src/lib.rs b/crates/load-cargo/src/lib.rs
index 7389940865..00446b27cf 100644
--- a/crates/load-cargo/src/lib.rs
+++ b/crates/load-cargo/src/lib.rs
@@ -242,9 +242,6 @@ impl ProjectFolders {
}
}
- if dirs.include.is_empty() {
- continue;
- }
vfs::loader::Entry::Directories(dirs)
};
@@ -267,7 +264,7 @@ impl ProjectFolders {
};
let file_set_roots = vec![VfsPath::from(ratoml_path.to_owned())];
- let entry = vfs::loader::Entry::Files(vec![ratoml_path]);
+ let entry = vfs::loader::Entry::Files(vec![ratoml_path.to_owned()]);
res.watch.push(res.load.len());
res.load.push(entry);
diff --git a/crates/project-model/src/workspace.rs b/crates/project-model/src/workspace.rs
index 465a1ad0ec..f98d983ac0 100644
--- a/crates/project-model/src/workspace.rs
+++ b/crates/project-model/src/workspace.rs
@@ -11,9 +11,8 @@ use base_db::{
};
use cfg::{CfgAtom, CfgDiff, CfgOptions};
use intern::{sym, Symbol};
-use itertools::Itertools;
use paths::{AbsPath, AbsPathBuf};
-use rustc_hash::FxHashMap;
+use rustc_hash::{FxHashMap, FxHashSet};
use semver::Version;
use span::{Edition, FileId};
use tracing::instrument;
@@ -591,9 +590,10 @@ impl ProjectWorkspace {
exclude: krate.exclude.clone(),
}
})
+ .collect::<FxHashSet<_>>()
+ .into_iter()
.chain(mk_sysroot())
- .unique()
- .collect(),
+ .collect::<Vec<_>>(),
ProjectWorkspaceKind::Cargo { cargo, rustc, build_scripts, error: _, set_test: _ } => {
cargo
.packages()
@@ -643,11 +643,6 @@ impl ProjectWorkspace {
exclude: Vec::new(),
})
}))
- .chain(cargo.is_virtual_workspace().then(|| PackageRoot {
- is_local: true,
- include: vec![cargo.workspace_root().to_path_buf()],
- exclude: Vec::new(),
- }))
.collect()
}
ProjectWorkspaceKind::DetachedFile { file, cargo: cargo_script, .. } => {