errors: introduce DiagnosticMessage
Introduce a `DiagnosticMessage` type that will enable diagnostic messages to be simple strings or Fluent identifiers. `DiagnosticMessage` is now used in the implementation of the standard `DiagnosticBuilder` APIs. Signed-off-by: David Wood <david.wood@huawei.com>
This commit is contained in:
parent
a22cf2af05
commit
8c684563a5
10 changed files with 79 additions and 43 deletions
|
@ -68,17 +68,18 @@ fn emit_frag_parse_err(
|
|||
arm_span: Span,
|
||||
kind: AstFragmentKind,
|
||||
) {
|
||||
if parser.token == token::Eof && e.message().ends_with(", found `<eof>`") {
|
||||
// FIXME(davidtwco): avoid depending on the error message text
|
||||
if parser.token == token::Eof && e.message().as_str().ends_with(", found `<eof>`") {
|
||||
if !e.span.is_dummy() {
|
||||
// early end of macro arm (#52866)
|
||||
e.replace_span_with(parser.sess.source_map().next_point(parser.token.span));
|
||||
}
|
||||
let msg = &e.message[0];
|
||||
e.message[0] = (
|
||||
format!(
|
||||
rustc_errors::DiagnosticMessage::Str(format!(
|
||||
"macro expansion ends with an incomplete expression: {}",
|
||||
msg.0.replace(", found `<eof>`", ""),
|
||||
),
|
||||
msg.0.as_str().replace(", found `<eof>`", ""),
|
||||
)),
|
||||
msg.1,
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue