Set channel override when querying the sysroot metadata

This commit is contained in:
Laurențiu Nicola 2024-02-14 08:45:11 +02:00
parent a02a219773
commit c738655188
2 changed files with 9 additions and 3 deletions

View File

@ -254,10 +254,18 @@ impl Sysroot {
.ok()?; .ok()?;
let current_dir = let current_dir =
AbsPathBuf::try_from(&*format!("{sysroot_src_dir}/sysroot")).ok()?; AbsPathBuf::try_from(&*format!("{sysroot_src_dir}/sysroot")).ok()?;
let mut cargo_config = CargoConfig::default();
// the sysroot uses `public-dependency`, so we make cargo think it's a nightly
cargo_config.extra_env.insert(
"__CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS".to_owned(),
"nightly".to_owned(),
);
let res = CargoWorkspace::fetch_metadata( let res = CargoWorkspace::fetch_metadata(
&sysroot_cargo_toml, &sysroot_cargo_toml,
&current_dir, &current_dir,
&CargoConfig::default(), &cargo_config,
None, None,
&|_| (), &|_| (),
) )

View File

@ -117,8 +117,6 @@ impl Metrics {
sh, sh,
"./target/release/rust-analyzer -q analysis-stats {path} --query-sysroot-metadata" "./target/release/rust-analyzer -q analysis-stats {path} --query-sysroot-metadata"
) )
// the sysroot uses `public-dependency`, so we make cargo think it's a nightly
.env("__CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS", "nightly")
.read()?; .read()?;
for (metric, value, unit) in parse_metrics(&output) { for (metric, value, unit) in parse_metrics(&output) {
self.report(&format!("analysis-stats/{name}/{metric}"), value, unit.into()); self.report(&format!("analysis-stats/{name}/{metric}"), value, unit.into());