diff options
| author | Lukas Wirth <lukastw97@gmail.com> | 2024-01-17 09:43:04 +0100 |
|---|---|---|
| committer | Lukas Wirth <lukastw97@gmail.com> | 2024-01-17 09:43:04 +0100 |
| commit | 21723cb0513a6cba95556822138dd7cb65ea3ac8 (patch) | |
| tree | f004412d3432de0f00fb3e14468593f0dc3f50df | |
| parent | 7777a81b6909914d1277eda6910b54d84fea0f76 (diff) | |
| download | rust-21723cb0513a6cba95556822138dd7cb65ea3ac8.tar.gz rust-21723cb0513a6cba95556822138dd7cb65ea3ac8.zip | |
Run metadata on sysroot for CI metrics
| -rw-r--r-- | crates/rust-analyzer/src/cli/analysis_stats.rs | 1 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/cli/flags.rs | 4 | ||||
| -rw-r--r-- | xtask/src/metrics.rs | 6 |
3 files changed, 10 insertions, 1 deletions
diff --git a/crates/rust-analyzer/src/cli/analysis_stats.rs b/crates/rust-analyzer/src/cli/analysis_stats.rs index e69302dbacc..f601f004420 100644 --- a/crates/rust-analyzer/src/cli/analysis_stats.rs +++ b/crates/rust-analyzer/src/cli/analysis_stats.rs @@ -63,6 +63,7 @@ impl flags::AnalysisStats { true => None, false => Some(RustLibSource::Discover), }; + cargo_config.sysroot_query_metadata = self.query_sysroot_metadata; let no_progress = &|_| (); let mut db_load_sw = self.stop_watch(); diff --git a/crates/rust-analyzer/src/cli/flags.rs b/crates/rust-analyzer/src/cli/flags.rs index 5633c0c488a..cc9e2a7ce26 100644 --- a/crates/rust-analyzer/src/cli/flags.rs +++ b/crates/rust-analyzer/src/cli/flags.rs @@ -71,6 +71,9 @@ xflags::xflags! { optional --with-deps /// Don't load sysroot crates (`std`, `core` & friends). optional --no-sysroot + /// Run cargo metadata on the sysroot to analyze its third-pary dependencies. + /// Requires --no-sysroot to not be set. + optional --query-sysroot-metadata /// Don't run build scripts or load `OUT_DIR` values by running `cargo check` before analysis. optional --disable-build-scripts @@ -206,6 +209,7 @@ pub struct AnalysisStats { pub only: Option<String>, pub with_deps: bool, pub no_sysroot: bool, + pub query_sysroot_metadata: bool, pub disable_build_scripts: bool, pub disable_proc_macros: bool, pub skip_lowering: bool, diff --git a/xtask/src/metrics.rs b/xtask/src/metrics.rs index 845928432c4..db4e1b35829 100644 --- a/xtask/src/metrics.rs +++ b/xtask/src/metrics.rs @@ -113,7 +113,11 @@ impl Metrics { ) -> anyhow::Result<()> { assert!(Path::new(path).exists(), "unable to find bench in {path}"); eprintln!("\nMeasuring analysis-stats/{name}"); - let output = cmd!(sh, "./target/release/rust-analyzer -q analysis-stats {path}").read()?; + let output = cmd!( + sh, + "./target/release/rust-analyzer -q analysis-stats {path} --query-sysroot-metadata" + ) + .read()?; for (metric, value, unit) in parse_metrics(&output) { self.report(&format!("analysis-stats/{name}/{metric}"), value, unit.into()); } |
