Skip to content

Commit

Permalink
translations(rustc_session): migrate check_expected_reuse
Browse files Browse the repository at this point in the history
This commit migrates the errors in the function check_expected_reuse
to use the new SessionDiagnostic. It also does some small refactor
for the IncorrectCguReuseType to include the 'at least' word in the
fluent translation file
  • Loading branch information
beowolx committed Aug 24, 2022
1 parent 77b01ac commit d90f2a0
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 22 deletions.
2 changes: 1 addition & 1 deletion compiler/rustc_codegen_ssa/src/back/write.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1892,7 +1892,7 @@ impl<B: ExtraBackendMethods> OngoingCodegen<B> {
}
});

sess.cgu_reuse_tracker.check_expected_reuse(sess.diagnostic());
sess.cgu_reuse_tracker.check_expected_reuse(sess);

sess.abort_if_errors();

Expand Down
5 changes: 4 additions & 1 deletion compiler/rustc_error_messages/locales/en-US/session.ftl
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
session_incorrect_cgu_reuse_type =
CGU-reuse for `{$cgu_user_name}` is `{$actual_reuse}` but should be `{$at_least}``${expected_reuse}`
CGU-reuse for `{$cgu_user_name}` is `{$actual_reuse}` but should be {$at_least ->
[one] {"at least "}
*[other] {""}
}`{$expected_reuse}`
session_cgu_not_recorded =
CGU-reuse for `{$cgu_user_name}` is (mangled: `{$cgu_name}`) was not recorded`
Expand Down
17 changes: 5 additions & 12 deletions compiler/rustc_session/src/cgu_reuse_tracker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
//! compilation. This is used for incremental compilation tests and debug
//! output.
use crate::errors::IncorrectCguReuseType;
use crate::errors::{CguNotRecorded, IncorrectCguReuseType};
use crate::Session;
use rustc_data_structures::fx::FxHashMap;
use rustc_errors::{DiagnosticArgValue, IntoDiagnosticArg};
use rustc_span::{Span, Symbol};
Expand Down Expand Up @@ -104,7 +105,7 @@ impl CguReuseTracker {
}
}

pub fn check_expected_reuse(&self, diag: &rustc_errors::Handler) {
pub fn check_expected_reuse(&self, sess: &Session) {
if let Some(ref data) = self.data {
let data = data.lock().unwrap();

Expand All @@ -118,7 +119,7 @@ impl CguReuseTracker {
};

if error {
let at_least = if at_least { "at least " } else { "" };
let at_least = if at_least { 1 } else { 0 };
IncorrectCguReuseType {
span: error_span.0,
cgu_user_name: &cgu_user_name,
Expand All @@ -128,15 +129,7 @@ impl CguReuseTracker {
};
}
} else {
//FIXME: Remove this once PR #100694 that implements `[fatal(..)]` is merged
let msg = format!(
"CGU-reuse for `{cgu_user_name}` (mangled: `{cgu_name}`) was \
not recorded"
);
diag.span_fatal(error_span.0, &msg)

//FIXME: Uncomment this once PR #100694 that implements `[fatal(..)]` is merged
// CguNotRecorded { cgu_user_name, cgu_name };
sess.emit_fatal(CguNotRecorded { cgu_user_name, cgu_name });
}
}
}
Expand Down
15 changes: 7 additions & 8 deletions compiler/rustc_session/src/errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,15 @@ pub struct IncorrectCguReuseType<'a> {
pub cgu_user_name: &'a str,
pub actual_reuse: CguReuse,
pub expected_reuse: CguReuse,
pub at_least: &'a str,
pub at_least: u8,
}

//FIXME: Uncomment this once PR #100694 that implements `[fatal(..)]` is merged
// #[derive(SessionDiagnostic)]
// #[fatal(session::cgu_not_recorded)]
// pub struct CguNotRecorded<'a> {
// pub cgu_user_name: &'a str,
// pub cgu_name: &'a str,
// }
#[derive(SessionDiagnostic)]
#[diag(session::cgu_not_recorded)]
pub struct CguNotRecorded<'a> {
pub cgu_user_name: &'a str,
pub cgu_name: &'a str,
}

#[derive(SessionDiagnostic)]
#[diag(session::feature_gate_error, code = "E0658")]
Expand Down

0 comments on commit d90f2a0

Please sign in to comment.