Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/project_model/src/workspace.rs')
| -rw-r--r-- | crates/project_model/src/workspace.rs | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/crates/project_model/src/workspace.rs b/crates/project_model/src/workspace.rs index cb79ce08ba..339fdfcc9b 100644 --- a/crates/project_model/src/workspace.rs +++ b/crates/project_model/src/workspace.rs @@ -160,14 +160,19 @@ impl ProjectWorkspace { cmd })?; - let meta = CargoWorkspace::fetch_metadata(&cargo_toml, config, progress) - .with_context(|| { - format!( - "Failed to read Cargo metadata from Cargo.toml file {}, {}", - cargo_toml.display(), - cargo_version - ) - })?; + let meta = CargoWorkspace::fetch_metadata( + &cargo_toml, + cargo_toml.parent(), + config, + progress, + ) + .with_context(|| { + format!( + "Failed to read Cargo metadata from Cargo.toml file {}, {}", + cargo_toml.display(), + cargo_version + ) + })?; let cargo = CargoWorkspace::new(meta); let sysroot = if config.no_sysroot { @@ -189,10 +194,15 @@ impl ProjectWorkspace { let rustc = match rustc_dir { Some(rustc_dir) => Some({ - let meta = CargoWorkspace::fetch_metadata(&rustc_dir, config, progress) - .with_context(|| { - "Failed to read Cargo metadata for Rust sources".to_string() - })?; + let meta = CargoWorkspace::fetch_metadata( + &rustc_dir, + cargo_toml.parent(), + config, + progress, + ) + .with_context(|| { + "Failed to read Cargo metadata for Rust sources".to_string() + })?; CargoWorkspace::new(meta) }), None => None, |