diff options
| author | Scott McMurray <scottmcm@users.noreply.github.com> | 2018-07-22 20:52:43 -0700 |
|---|---|---|
| committer | Scott McMurray <scottmcm@users.noreply.github.com> | 2018-08-19 16:53:41 -0700 |
| commit | 91967a8f163b44eb46bdac130ffded7752ae298c (patch) | |
| tree | 0f44ac2f24fe20fae6eb5d75f1aad03b736f4bcb | |
| parent | ef198867a73f24d4c3c50d246c1024a3bff3cee2 (diff) | |
| download | rust-91967a8f163b44eb46bdac130ffded7752ae298c.tar.gz rust-91967a8f163b44eb46bdac130ffded7752ae298c.zip | |
Put `try` in the reserved list, not the in-use list
| -rw-r--r-- | src/libsyntax_pos/symbol.rs | 17 | ||||
| -rw-r--r-- | src/test/compile-fail/try-block-in-match.rs | 2 | ||||
| -rw-r--r-- | src/test/compile-fail/try-block-in-while.rs | 2 | ||||
| -rw-r--r-- | src/test/parse-fail/keyword-try-as-identifier-edition2018.rs | 2 |
4 files changed, 8 insertions, 15 deletions
diff --git a/src/libsyntax_pos/symbol.rs b/src/libsyntax_pos/symbol.rs index dc92ce56c79..1eb76e7fe52 100644 --- a/src/libsyntax_pos/symbol.rs +++ b/src/libsyntax_pos/symbol.rs @@ -413,11 +413,9 @@ declare_keywords! { (49, Virtual, "virtual") (50, Yield, "yield") - // Edition-specific keywords currently in use. - (51, Try, "try") // >= 2018 Edition Only - // Edition-specific keywords reserved for future use. - (52, Async, "async") // >= 2018 Edition Only + (51, Async, "async") // >= 2018 Edition Only + (52, Try, "try") // >= 2018 Edition Only // Special lifetime names (53, UnderscoreLifetime, "'_") @@ -433,12 +431,9 @@ declare_keywords! { } impl Symbol { - fn is_used_keyword_2018(self) -> bool { - self == keywords::Try.name() - } - fn is_unused_keyword_2018(self) -> bool { - self == keywords::Async.name() + self >= keywords::Async.name() && + self <= keywords::Try.name() } } @@ -451,9 +446,7 @@ impl Ident { /// Returns `true` if the token is a keyword used in the language. pub fn is_used_keyword(self) -> bool { - // Note: `span.edition()` is relatively expensive, don't call it unless necessary. - self.name >= keywords::As.name() && self.name <= keywords::While.name() || - self.name.is_used_keyword_2018() && self.span.edition() == Edition::Edition2018 + self.name >= keywords::As.name() && self.name <= keywords::While.name() } /// Returns `true` if the token is a keyword reserved for possible future use. diff --git a/src/test/compile-fail/try-block-in-match.rs b/src/test/compile-fail/try-block-in-match.rs index 490b00a6f43..1920caa548f 100644 --- a/src/test/compile-fail/try-block-in-match.rs +++ b/src/test/compile-fail/try-block-in-match.rs @@ -13,5 +13,5 @@ #![feature(catch_expr)] fn main() { - match try { false } { _ => {} } //~ ERROR expected expression, found keyword `try` + match try { false } { _ => {} } //~ ERROR expected expression, found reserved keyword `try` } diff --git a/src/test/compile-fail/try-block-in-while.rs b/src/test/compile-fail/try-block-in-while.rs index a949e778f38..fc1c0897614 100644 --- a/src/test/compile-fail/try-block-in-while.rs +++ b/src/test/compile-fail/try-block-in-while.rs @@ -13,5 +13,5 @@ #![feature(catch_expr)] fn main() { - while try { false } {} //~ ERROR expected expression, found keyword `try` + while try { false } {} //~ ERROR expected expression, found reserved keyword `try` } diff --git a/src/test/parse-fail/keyword-try-as-identifier-edition2018.rs b/src/test/parse-fail/keyword-try-as-identifier-edition2018.rs index 1fe67313a35..1e4f85c122d 100644 --- a/src/test/parse-fail/keyword-try-as-identifier-edition2018.rs +++ b/src/test/parse-fail/keyword-try-as-identifier-edition2018.rs @@ -11,5 +11,5 @@ // compile-flags: -Z parse-only --edition 2018 fn main() { - let try = "foo"; //~ error: expected pattern, found keyword `try` + let try = "foo"; //~ error: expected pattern, found reserved keyword `try` } |
