diff options
| author | Arthur Baars <aibaars@github.com> | 2025-03-05 10:40:11 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-05 10:40:11 +0100 |
| commit | 049f4dbd2b990f46772d07f07d54c7ea6ccca7fd (patch) | |
| tree | a4411932bfe5acf0c1046684e52a0fe94479660e | |
| parent | 5ad05fb9e9925d29b490b46bc8b6df127bf9adb0 (diff) | |
| download | rust-049f4dbd2b990f46772d07f07d54c7ea6ccca7fd.tar.gz rust-049f4dbd2b990f46772d07f07d54c7ea6ccca7fd.zip | |
Add warning and debug information when `cargo metadata` fails
The errors are silently dropped elsewhere, which make it really hard to debug issues due to dependency download failures.
| -rw-r--r-- | src/tools/rust-analyzer/crates/project-model/src/cargo_workspace.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/tools/rust-analyzer/crates/project-model/src/cargo_workspace.rs b/src/tools/rust-analyzer/crates/project-model/src/cargo_workspace.rs index 40ab8c53fae..e7c3bcb5418 100644 --- a/src/tools/rust-analyzer/crates/project-model/src/cargo_workspace.rs +++ b/src/tools/rust-analyzer/crates/project-model/src/cargo_workspace.rs @@ -288,7 +288,22 @@ impl CargoWorkspace { locked: bool, progress: &dyn Fn(String), ) -> anyhow::Result<(cargo_metadata::Metadata, Option<anyhow::Error>)> { - Self::fetch_metadata_(cargo_toml, current_dir, config, sysroot, locked, false, progress) + let res = Self::fetch_metadata_( + cargo_toml, + current_dir, + config, + sysroot, + locked, + false, + progress, + ); + if let Ok((_, Some(ref e))) = res { + tracing::warn!( + "`cargo metadata` failed on `{cargo_toml}`, but retry with `--no-deps` succeeded" + ); + tracing::debug!("{e:?}"); + } + res } fn fetch_metadata_( |
