mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-07-08 05:35:26 +00:00
Merge pull request #20148 from ShoyuVanilla/sysroot-no-deps
fix: Honor `rust-analyzer.cargo.noDeps` option when fetching sysroot metadata
This commit is contained in:
commit
4183bcdcde
4 changed files with 15 additions and 4 deletions
|
@ -209,6 +209,7 @@ impl Sysroot {
|
||||||
pub fn load_workspace(
|
pub fn load_workspace(
|
||||||
&self,
|
&self,
|
||||||
sysroot_source_config: &RustSourceWorkspaceConfig,
|
sysroot_source_config: &RustSourceWorkspaceConfig,
|
||||||
|
no_deps: bool,
|
||||||
current_dir: &AbsPath,
|
current_dir: &AbsPath,
|
||||||
progress: &dyn Fn(String),
|
progress: &dyn Fn(String),
|
||||||
) -> Option<RustLibSrcWorkspace> {
|
) -> Option<RustLibSrcWorkspace> {
|
||||||
|
@ -224,6 +225,7 @@ impl Sysroot {
|
||||||
&library_manifest,
|
&library_manifest,
|
||||||
current_dir,
|
current_dir,
|
||||||
cargo_config,
|
cargo_config,
|
||||||
|
no_deps,
|
||||||
progress,
|
progress,
|
||||||
) {
|
) {
|
||||||
Ok(loaded) => return Some(loaded),
|
Ok(loaded) => return Some(loaded),
|
||||||
|
@ -318,6 +320,7 @@ impl Sysroot {
|
||||||
library_manifest: &ManifestPath,
|
library_manifest: &ManifestPath,
|
||||||
current_dir: &AbsPath,
|
current_dir: &AbsPath,
|
||||||
cargo_config: &CargoMetadataConfig,
|
cargo_config: &CargoMetadataConfig,
|
||||||
|
no_deps: bool,
|
||||||
progress: &dyn Fn(String),
|
progress: &dyn Fn(String),
|
||||||
) -> Result<RustLibSrcWorkspace> {
|
) -> Result<RustLibSrcWorkspace> {
|
||||||
tracing::debug!("Loading library metadata: {library_manifest}");
|
tracing::debug!("Loading library metadata: {library_manifest}");
|
||||||
|
@ -333,7 +336,7 @@ impl Sysroot {
|
||||||
current_dir,
|
current_dir,
|
||||||
&cargo_config,
|
&cargo_config,
|
||||||
self,
|
self,
|
||||||
false,
|
no_deps,
|
||||||
// Make sure we never attempt to write to the sysroot
|
// Make sure we never attempt to write to the sysroot
|
||||||
true,
|
true,
|
||||||
progress,
|
progress,
|
||||||
|
|
|
@ -240,7 +240,7 @@ fn smoke_test_real_sysroot_cargo() {
|
||||||
let cwd = AbsPathBuf::assert_utf8(temp_dir().join("smoke_test_real_sysroot_cargo"));
|
let cwd = AbsPathBuf::assert_utf8(temp_dir().join("smoke_test_real_sysroot_cargo"));
|
||||||
std::fs::create_dir_all(&cwd).unwrap();
|
std::fs::create_dir_all(&cwd).unwrap();
|
||||||
let loaded_sysroot =
|
let loaded_sysroot =
|
||||||
sysroot.load_workspace(&RustSourceWorkspaceConfig::default_cargo(), &cwd, &|_| ());
|
sysroot.load_workspace(&RustSourceWorkspaceConfig::default_cargo(), false, &cwd, &|_| ());
|
||||||
if let Some(loaded_sysroot) = loaded_sysroot {
|
if let Some(loaded_sysroot) = loaded_sysroot {
|
||||||
sysroot.set_workspace(loaded_sysroot);
|
sysroot.set_workspace(loaded_sysroot);
|
||||||
}
|
}
|
||||||
|
|
|
@ -391,6 +391,7 @@ impl ProjectWorkspace {
|
||||||
toolchain.clone(),
|
toolchain.clone(),
|
||||||
target_dir.clone(),
|
target_dir.clone(),
|
||||||
)),
|
)),
|
||||||
|
config.no_deps,
|
||||||
workspace_dir,
|
workspace_dir,
|
||||||
progress,
|
progress,
|
||||||
)
|
)
|
||||||
|
@ -499,6 +500,7 @@ impl ProjectWorkspace {
|
||||||
if let Some(sysroot_project) = sysroot_project {
|
if let Some(sysroot_project) = sysroot_project {
|
||||||
sysroot.load_workspace(
|
sysroot.load_workspace(
|
||||||
&RustSourceWorkspaceConfig::Json(*sysroot_project),
|
&RustSourceWorkspaceConfig::Json(*sysroot_project),
|
||||||
|
config.no_deps,
|
||||||
project_root,
|
project_root,
|
||||||
progress,
|
progress,
|
||||||
)
|
)
|
||||||
|
@ -510,6 +512,7 @@ impl ProjectWorkspace {
|
||||||
toolchain.clone(),
|
toolchain.clone(),
|
||||||
target_dir,
|
target_dir,
|
||||||
)),
|
)),
|
||||||
|
config.no_deps,
|
||||||
project_root,
|
project_root,
|
||||||
progress,
|
progress,
|
||||||
)
|
)
|
||||||
|
@ -570,6 +573,7 @@ impl ProjectWorkspace {
|
||||||
toolchain.clone(),
|
toolchain.clone(),
|
||||||
target_dir.clone(),
|
target_dir.clone(),
|
||||||
)),
|
)),
|
||||||
|
config.no_deps,
|
||||||
dir,
|
dir,
|
||||||
&|_| (),
|
&|_| (),
|
||||||
);
|
);
|
||||||
|
|
|
@ -75,8 +75,12 @@ impl Tester {
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut sysroot = Sysroot::discover(tmp_file.parent().unwrap(), &cargo_config.extra_env);
|
let mut sysroot = Sysroot::discover(tmp_file.parent().unwrap(), &cargo_config.extra_env);
|
||||||
let loaded_sysroot =
|
let loaded_sysroot = sysroot.load_workspace(
|
||||||
sysroot.load_workspace(&RustSourceWorkspaceConfig::default_cargo(), &path, &|_| ());
|
&RustSourceWorkspaceConfig::default_cargo(),
|
||||||
|
false,
|
||||||
|
&path,
|
||||||
|
&|_| (),
|
||||||
|
);
|
||||||
if let Some(loaded_sysroot) = loaded_sysroot {
|
if let Some(loaded_sysroot) = loaded_sysroot {
|
||||||
sysroot.set_workspace(loaded_sysroot);
|
sysroot.set_workspace(loaded_sysroot);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue