Skip to content

Commit ad03581

Browse files
committed
replace extra_filename with strict version hash in metrics file names
1 parent d4bdd1e commit ad03581

File tree

1 file changed

+5
-8
lines changed
  • compiler/rustc_driver_impl/src

1 file changed

+5
-8
lines changed

compiler/rustc_driver_impl/src/lib.rs

+5-8
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ use rustc_session::lint::{Lint, LintId};
6060
use rustc_session::output::collect_crate_types;
6161
use rustc_session::{EarlyDiagCtxt, Session, config, filesearch};
6262
use rustc_span::FileName;
63+
use rustc_span::def_id::LOCAL_CRATE;
6364
use rustc_target::json::ToJson;
6465
use rustc_target::spec::{Target, TargetTuple};
6566
use time::OffsetDateTime;
@@ -383,14 +384,10 @@ pub fn run_compiler(at_args: &[String], callbacks: &mut (dyn Callbacks + Send))
383384
}
384385

385386
fn dump_feature_usage_metrics(tcxt: TyCtxt<'_>, metrics_dir: &Path) {
386-
let output_filenames = tcxt.output_filenames(());
387-
let mut metrics_file_name = std::ffi::OsString::from("unstable_feature_usage_metrics-");
388-
let mut metrics_path = output_filenames.with_directory_and_extension(metrics_dir, "json");
389-
let metrics_file_stem =
390-
metrics_path.file_name().expect("there should be a valid default output filename");
391-
metrics_file_name.push(metrics_file_stem);
392-
metrics_path.pop();
393-
metrics_path.push(metrics_file_name);
387+
let hash = tcxt.crate_hash(LOCAL_CRATE);
388+
let crate_name = tcxt.crate_name(LOCAL_CRATE);
389+
let metrics_file_name = format!("unstable_feature_usage_metrics-{crate_name}-{hash}.json");
390+
let metrics_path = metrics_dir.join(metrics_file_name);
394391
if let Err(error) = tcxt.features().dump_feature_usage_metrics(metrics_path) {
395392
// FIXME(yaahc): once metrics can be enabled by default we will want "failure to emit
396393
// default metrics" to only produce a warning when metrics are enabled by default and emit

0 commit comments

Comments
 (0)