Rollup merge of #113884 - oli-obk:delay_span_bug_detrans_late, r=davidtwco

Don't translate compiler-internal bug messages

These are not very useful to be translated, as

* translators would get really weird and bad english versions to start out from,
* compiler devs have to do some work for what is supposed to be dead code and just a sanity check,
* the target audience is other compiler devs.

r? `@davidtwco`
This commit is contained in:
Matthias Krüger 2023-07-20 17:19:34 +02:00 committed by GitHub
commit 464e02a267
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 27 additions and 45 deletions

View File

@ -1003,7 +1003,7 @@ impl Handler {
self.emit_diag_at_span(Diagnostic::new_with_code(Warning(None), Some(code), msg), span); self.emit_diag_at_span(Diagnostic::new_with_code(Warning(None), Some(code), msg), span);
} }
pub fn span_bug(&self, span: impl Into<MultiSpan>, msg: impl Into<DiagnosticMessage>) -> ! { pub fn span_bug(&self, span: impl Into<MultiSpan>, msg: impl Into<String>) -> ! {
self.inner.borrow_mut().span_bug(span, msg) self.inner.borrow_mut().span_bug(span, msg)
} }
@ -1012,7 +1012,7 @@ impl Handler {
pub fn delay_span_bug( pub fn delay_span_bug(
&self, &self,
span: impl Into<MultiSpan>, span: impl Into<MultiSpan>,
msg: impl Into<DiagnosticMessage>, msg: impl Into<String>,
) -> ErrorGuaranteed { ) -> ErrorGuaranteed {
self.inner.borrow_mut().delay_span_bug(span, msg) self.inner.borrow_mut().delay_span_bug(span, msg)
} }
@ -1596,8 +1596,8 @@ impl HandlerInner {
} }
#[track_caller] #[track_caller]
fn span_bug(&mut self, sp: impl Into<MultiSpan>, msg: impl Into<DiagnosticMessage>) -> ! { fn span_bug(&mut self, sp: impl Into<MultiSpan>, msg: impl Into<String>) -> ! {
self.emit_diag_at_span(Diagnostic::new(Bug, msg), sp); self.emit_diag_at_span(Diagnostic::new(Bug, msg.into()), sp);
panic::panic_any(ExplicitBug); panic::panic_any(ExplicitBug);
} }
@ -1610,7 +1610,7 @@ impl HandlerInner {
fn delay_span_bug( fn delay_span_bug(
&mut self, &mut self,
sp: impl Into<MultiSpan>, sp: impl Into<MultiSpan>,
msg: impl Into<DiagnosticMessage>, msg: impl Into<String>,
) -> ErrorGuaranteed { ) -> ErrorGuaranteed {
// This is technically `self.treat_err_as_bug()` but `delay_span_bug` is called before // This is technically `self.treat_err_as_bug()` but `delay_span_bug` is called before
// incrementing `err_count` by one, so we need to +1 the comparing. // incrementing `err_count` by one, so we need to +1 the comparing.
@ -1619,9 +1619,9 @@ impl HandlerInner {
self.err_count() + self.lint_err_count + self.delayed_bug_count() + 1 >= c.get() self.err_count() + self.lint_err_count + self.delayed_bug_count() + 1 >= c.get()
}) { }) {
// FIXME: don't abort here if report_delayed_bugs is off // FIXME: don't abort here if report_delayed_bugs is off
self.span_bug(sp, msg); self.span_bug(sp, msg.into());
} }
let mut diagnostic = Diagnostic::new(Level::DelayedBug, msg); let mut diagnostic = Diagnostic::new(Level::DelayedBug, msg.into());
diagnostic.set_span(sp.into()); diagnostic.set_span(sp.into());
self.emit_diagnostic(&mut diagnostic).unwrap() self.emit_diagnostic(&mut diagnostic).unwrap()
} }

View File

@ -1147,7 +1147,7 @@ impl<'a> ExtCtxt<'a> {
pub fn span_warn<S: Into<MultiSpan>>(&self, sp: S, msg: impl Into<DiagnosticMessage>) { pub fn span_warn<S: Into<MultiSpan>>(&self, sp: S, msg: impl Into<DiagnosticMessage>) {
self.sess.parse_sess.span_diagnostic.span_warn(sp, msg); self.sess.parse_sess.span_diagnostic.span_warn(sp, msg);
} }
pub fn span_bug<S: Into<MultiSpan>>(&self, sp: S, msg: impl Into<DiagnosticMessage>) -> ! { pub fn span_bug<S: Into<MultiSpan>>(&self, sp: S, msg: impl Into<String>) -> ! {
self.sess.parse_sess.span_diagnostic.span_bug(sp, msg); self.sess.parse_sess.span_diagnostic.span_bug(sp, msg);
} }
pub fn trace_macros_diag(&mut self) { pub fn trace_macros_diag(&mut self) {

View File

@ -15,7 +15,6 @@ use hir::def::DefKind;
use polonius_engine::Atom; use polonius_engine::Atom;
use rustc_data_structures::captures::Captures; use rustc_data_structures::captures::Captures;
use rustc_data_structures::intern::Interned; use rustc_data_structures::intern::Interned;
use rustc_error_messages::DiagnosticMessage;
use rustc_errors::{DiagnosticArgValue, ErrorGuaranteed, IntoDiagnosticArg, MultiSpan}; use rustc_errors::{DiagnosticArgValue, ErrorGuaranteed, IntoDiagnosticArg, MultiSpan};
use rustc_hir as hir; use rustc_hir as hir;
use rustc_hir::def_id::DefId; use rustc_hir::def_id::DefId;
@ -1991,7 +1990,7 @@ impl<'tcx> Ty<'tcx> {
pub fn new_error_with_message<S: Into<MultiSpan>>( pub fn new_error_with_message<S: Into<MultiSpan>>(
tcx: TyCtxt<'tcx>, tcx: TyCtxt<'tcx>,
span: S, span: S,
msg: impl Into<DiagnosticMessage>, msg: impl Into<String>,
) -> Ty<'tcx> { ) -> Ty<'tcx> {
let reported = tcx.sess.delay_span_bug(span, msg); let reported = tcx.sess.delay_span_bug(span, msg);
Ty::new(tcx, Error(reported)) Ty::new(tcx, Error(reported))

View File

@ -247,7 +247,7 @@ impl<'a> Parser<'a> {
self.sess.span_diagnostic.struct_span_err(sp, m) self.sess.span_diagnostic.struct_span_err(sp, m)
} }
pub fn span_bug<S: Into<MultiSpan>>(&self, sp: S, m: impl Into<DiagnosticMessage>) -> ! { pub fn span_bug<S: Into<MultiSpan>>(&self, sp: S, m: impl Into<String>) -> ! {
self.sess.span_diagnostic.span_bug(sp, m) self.sess.span_diagnostic.span_bug(sp, m)
} }

View File

@ -8,7 +8,6 @@ use crate::errors::{
TrailingVertNotAllowed, UnexpectedLifetimeInPattern, UnexpectedVertVertBeforeFunctionParam, TrailingVertNotAllowed, UnexpectedLifetimeInPattern, UnexpectedVertVertBeforeFunctionParam,
UnexpectedVertVertInPattern, UnexpectedVertVertInPattern,
}; };
use crate::fluent_generated as fluent;
use crate::{maybe_recover_from_interpolated_ty_qpath, maybe_whole}; use crate::{maybe_recover_from_interpolated_ty_qpath, maybe_whole};
use rustc_ast::mut_visit::{noop_visit_pat, MutVisitor}; use rustc_ast::mut_visit::{noop_visit_pat, MutVisitor};
use rustc_ast::ptr::P; use rustc_ast::ptr::P;
@ -214,41 +213,25 @@ impl<'a> Parser<'a> {
if let PatKind::Or(pats) = &pat.kind { if let PatKind::Or(pats) = &pat.kind {
let span = pat.span; let span = pat.span;
let pat = pprust::pat_to_string(&pat);
if trailing_vert { let sub = if pats.len() == 1 {
// We already emitted an error and suggestion to remove the trailing vert. Don't Some(TopLevelOrPatternNotAllowedSugg::RemoveLeadingVert { span, pat })
// emit again.
// FIXME(#100717): pass `TopLevelOrPatternNotAllowed::* { sub: None }` to
// `delay_span_bug()` instead of fluent message
self.sess.span_diagnostic.delay_span_bug(
span,
match syntax_loc {
PatternLocation::LetBinding => {
fluent::parse_or_pattern_not_allowed_in_let_binding
}
PatternLocation::FunctionParameter => {
fluent::parse_or_pattern_not_allowed_in_fn_parameters
}
},
);
} else { } else {
let pat = pprust::pat_to_string(&pat); Some(TopLevelOrPatternNotAllowedSugg::WrapInParens { span, pat })
let sub = if pats.len() == 1 { };
Some(TopLevelOrPatternNotAllowedSugg::RemoveLeadingVert { span, pat })
} else {
Some(TopLevelOrPatternNotAllowedSugg::WrapInParens { span, pat })
};
self.sess.emit_err(match syntax_loc { let mut err = self.sess.create_err(match syntax_loc {
PatternLocation::LetBinding => { PatternLocation::LetBinding => {
TopLevelOrPatternNotAllowed::LetBinding { span, sub } TopLevelOrPatternNotAllowed::LetBinding { span, sub }
} }
PatternLocation::FunctionParameter => { PatternLocation::FunctionParameter => {
TopLevelOrPatternNotAllowed::FunctionParameter { span, sub } TopLevelOrPatternNotAllowed::FunctionParameter { span, sub }
} }
}); });
if trailing_vert {
err.delay_as_bug();
} }
err.emit();
} }
Ok((pat, colon)) Ok((pat, colon))

View File

@ -677,7 +677,7 @@ impl Session {
pub fn delay_span_bug<S: Into<MultiSpan>>( pub fn delay_span_bug<S: Into<MultiSpan>>(
&self, &self,
sp: S, sp: S,
msg: impl Into<DiagnosticMessage>, msg: impl Into<String>,
) -> ErrorGuaranteed { ) -> ErrorGuaranteed {
self.diagnostic().delay_span_bug(sp, msg) self.diagnostic().delay_span_bug(sp, msg)
} }