translations(rustc_session): migrate check_expected_reuse

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
This commit is contained in:
Luis Cardoso 2022-08-24 17:15:08 +02:00
parent d5262a9452
commit 2c77f3e9c5
4 changed files with 17 additions and 22 deletions
compiler
rustc_codegen_ssa/src/back
rustc_error_messages/locales/en-US
rustc_session/src

View File

@ -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();

View File

@ -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`

View File

@ -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};
@ -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();
@ -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,
@ -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 });
}
}
}

View File

@ -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")]