From 93a427e3ca48bdb7f107e0dd0cf48dd53fb8aea8 Mon Sep 17 00:00:00 2001 From: Christian Poveda Date: Tue, 31 May 2022 12:33:35 -0500 Subject: [PATCH] migrate `recover_from_await_method_call` diagnostic --- .../locales/en-US/parser.ftl | 4 ++++ compiler/rustc_parse/src/parser/diagnostics.rs | 18 ++++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/compiler/rustc_error_messages/locales/en-US/parser.ftl b/compiler/rustc_error_messages/locales/en-US/parser.ftl index 90124b64f3c..740ebcab0f8 100644 --- a/compiler/rustc_error_messages/locales/en-US/parser.ftl +++ b/compiler/rustc_error_messages/locales/en-US/parser.ftl @@ -23,3 +23,7 @@ parser-incorrect-semicolon = expected item, found `;` .suggestion = remove this semicolon .help = {$name} declarations are not followed by a semicolon + +parser-incorrect-use-of-await = + incorrect use of `await` + .suggestion = `await` is not a method call, remove the parentheses diff --git a/compiler/rustc_parse/src/parser/diagnostics.rs b/compiler/rustc_parse/src/parser/diagnostics.rs index 9bfd4098968..466b69ec339 100644 --- a/compiler/rustc_parse/src/parser/diagnostics.rs +++ b/compiler/rustc_parse/src/parser/diagnostics.rs @@ -306,6 +306,14 @@ struct IncorrectSemicolon<'a> { name: &'a str, } +#[derive(SessionDiagnostic)] +#[error(slug = "parser-incorrect-use-of-await")] +struct IncorrectUseOfAwait { + #[primary_span] + #[suggestion(applicability = "machine-applicable")] + span: Span, +} + // SnapshotParser is used to create a snapshot of the parser // without causing duplicate errors being emitted when the `Parser` // is dropped. @@ -1659,14 +1667,8 @@ impl<'a> Parser<'a> { self.bump(); // ( let sp = lo.to(self.token.span); self.bump(); // ) - self.struct_span_err(sp, "incorrect use of `await`") - .span_suggestion( - sp, - "`await` is not a method call, remove the parentheses", - String::new(), - Applicability::MachineApplicable, - ) - .emit(); + + self.sess.emit_err(IncorrectUseOfAwait { span: sp }); } }