diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 2d6c8c5407583..8d2c7d062127c 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -2628,7 +2628,8 @@ impl<'a> Parser<'a> { db.span_label(self.span, "expected expression"); db.note("variable declaration using `let` is a statement"); return Err(db); - } else if self.span.rust_2018() && self.eat_keyword(keywords::Await) { + } else if self.span.rust_2018() && self.eat_keyword(keywords::Await) + && self.check(&token::Not) { // FIXME: remove this branch when `await!` is no longer supported // https://github.com/rust-lang/rust/issues/60610 self.expect(&token::Not)?; diff --git a/src/test/ui/await-keyword/2018-edition-error-in-non-macro-position.rs b/src/test/ui/await-keyword/2018-edition-error-in-non-macro-position.rs index b2e8e4be17244..e82efc2cdcf83 100644 --- a/src/test/ui/await-keyword/2018-edition-error-in-non-macro-position.rs +++ b/src/test/ui/await-keyword/2018-edition-error-in-non-macro-position.rs @@ -23,5 +23,5 @@ macro_rules! await { } fn main() { - match await { await => () } //~ ERROR expected `!`, found `{` + match await { await => () } //~ ERROR expected expression, found `{` } diff --git a/src/test/ui/await-keyword/2018-edition-error-in-non-macro-position.stderr b/src/test/ui/await-keyword/2018-edition-error-in-non-macro-position.stderr index 076a31bd9ced6..007074b8eea70 100644 --- a/src/test/ui/await-keyword/2018-edition-error-in-non-macro-position.stderr +++ b/src/test/ui/await-keyword/2018-edition-error-in-non-macro-position.stderr @@ -68,11 +68,11 @@ help: you can escape reserved keywords to use them as identifiers LL | macro_rules! r#await { | ^^^^^^^ -error: expected `!`, found `{` +error: expected expression, found `{` --> $DIR/2018-edition-error-in-non-macro-position.rs:26:17 | LL | match await { await => () } - | ----- ^ expected `!` + | ----- ^ expected expression | | | while parsing this match expression diff --git a/src/test/ui/await-keyword/2018-edition-error.rs b/src/test/ui/await-keyword/2018-edition-error.rs index e0b2962ce9791..e70c5bcbf9f2b 100644 --- a/src/test/ui/await-keyword/2018-edition-error.rs +++ b/src/test/ui/await-keyword/2018-edition-error.rs @@ -10,5 +10,5 @@ use self::outer_mod::await::await; //~ ERROR expected identifier //~^ ERROR expected identifier, found reserved keyword `await` fn main() { - match await { await => () } //~ ERROR expected `!`, found `{` + match await { await => () } //~ ERROR expected expression, found `{` } diff --git a/src/test/ui/await-keyword/2018-edition-error.stderr b/src/test/ui/await-keyword/2018-edition-error.stderr index c8bf9b42ca545..6c0674095623c 100644 --- a/src/test/ui/await-keyword/2018-edition-error.stderr +++ b/src/test/ui/await-keyword/2018-edition-error.stderr @@ -38,11 +38,11 @@ help: you can escape reserved keywords to use them as identifiers LL | use self::outer_mod::await::r#await; | ^^^^^^^ -error: expected `!`, found `{` +error: expected expression, found `{` --> $DIR/2018-edition-error.rs:13:17 | LL | match await { await => () } - | ----- ^ expected `!` + | ----- ^ expected expression | | | while parsing this match expression