diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-02-26 00:46:27 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-26 00:46:27 +0100 |
| commit | 9631f4b5c9167bc93ea890736e22d97bfd0941b7 (patch) | |
| tree | 247b10619dd1ae8e0573c4a80a1dcecad02072b7 | |
| parent | 4ab1c74b77700131309b0d1038f567c772e7b460 (diff) | |
| parent | dca52ac835f8c87dfc3167606d1146ce6b9bba11 (diff) | |
| download | rust-9631f4b5c9167bc93ea890736e22d97bfd0941b7.tar.gz rust-9631f4b5c9167bc93ea890736e22d97bfd0941b7.zip | |
Rollup merge of #108436 - tshepang:translatable-proc-macro-panicked, r=estebank
make "proc macro panicked" translatable
| -rw-r--r-- | compiler/rustc_expand/locales/en-US.ftl | 4 | ||||
| -rw-r--r-- | compiler/rustc_expand/src/errors.rs | 15 | ||||
| -rw-r--r-- | compiler/rustc_expand/src/proc_macro.rs | 12 |
3 files changed, 26 insertions, 5 deletions
diff --git a/compiler/rustc_expand/locales/en-US.ftl b/compiler/rustc_expand/locales/en-US.ftl index dbd80954382..b475d285f6b 100644 --- a/compiler/rustc_expand/locales/en-US.ftl +++ b/compiler/rustc_expand/locales/en-US.ftl @@ -129,3 +129,7 @@ expand_module_multiple_candidates = .help = delete or rename one of them to remove the ambiguity expand_trace_macro = trace_macro + +expand_proc_macro_panicked = + proc macro panicked + .help = message: {$message} diff --git a/compiler/rustc_expand/src/errors.rs b/compiler/rustc_expand/src/errors.rs index d9b2b5f4802..70ab222b484 100644 --- a/compiler/rustc_expand/src/errors.rs +++ b/compiler/rustc_expand/src/errors.rs @@ -375,3 +375,18 @@ pub struct TraceMacro { #[primary_span] pub span: Span, } + +#[derive(Diagnostic)] +#[diag(expand_proc_macro_panicked)] +pub(crate) struct ProcMacroPanicked { + #[primary_span] + pub span: Span, + #[subdiagnostic] + pub message: Option<ProcMacroPanickedHelp>, +} + +#[derive(Subdiagnostic)] +#[help(expand_help)] +pub(crate) struct ProcMacroPanickedHelp { + pub message: String, +} diff --git a/compiler/rustc_expand/src/proc_macro.rs b/compiler/rustc_expand/src/proc_macro.rs index e9a69192068..cef64a10479 100644 --- a/compiler/rustc_expand/src/proc_macro.rs +++ b/compiler/rustc_expand/src/proc_macro.rs @@ -1,4 +1,5 @@ use crate::base::{self, *}; +use crate::errors; use crate::proc_macro_server; use rustc_ast as ast; @@ -60,11 +61,12 @@ impl base::BangProcMacro for BangProcMacro { let strategy = exec_strategy(ecx); let server = proc_macro_server::Rustc::new(ecx); self.client.run(&strategy, server, input, proc_macro_backtrace).map_err(|e| { - let mut err = ecx.struct_span_err(span, "proc macro panicked"); - if let Some(s) = e.as_str() { - err.help(&format!("message: {}", s)); - } - err.emit() + ecx.sess.emit_err(errors::ProcMacroPanicked { + span, + message: e + .as_str() + .map(|message| errors::ProcMacroPanickedHelp { message: message.into() }), + }) }) } } |
