Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/parser/src/grammar/items.rs')
-rw-r--r--crates/parser/src/grammar/items.rs24
1 files changed, 5 insertions, 19 deletions
diff --git a/crates/parser/src/grammar/items.rs b/crates/parser/src/grammar/items.rs
index df117d7aa9..4e2a50d7a1 100644
--- a/crates/parser/src/grammar/items.rs
+++ b/crates/parser/src/grammar/items.rs
@@ -230,13 +230,8 @@ fn opt_item_without_modifiers(p: &mut Parser<'_>, m: Marker) -> Result<(), Marke
IDENT if p.at_contextual_kw(T![union]) && p.nth(1) == IDENT => adt::union(p, m),
T![macro] => macro_def(p, m),
- // check if current token is "macro_rules" followed by "!" followed by an identifier or "try"
- // try is keyword since the 2018 edition and the parser is not edition aware (yet!)
- IDENT
- if p.at_contextual_kw(T![macro_rules])
- && p.nth_at(1, BANG)
- && (p.nth_at(2, IDENT) || p.nth_at(2, T![try])) =>
- {
+ // check if current token is "macro_rules" followed by "!" followed by an identifier
+ IDENT if p.at_contextual_kw(T![macro_rules]) && p.nth_at(1, BANG) && p.nth_at(2, IDENT) => {
macro_rules(p, m)
}
@@ -334,23 +329,14 @@ pub(crate) fn extern_item_list(p: &mut Parser<'_>) {
m.complete(p, EXTERN_ITEM_LIST);
}
+// test try_macro_rules 2015
+// macro_rules! try { () => {} }
fn macro_rules(p: &mut Parser<'_>, m: Marker) {
assert!(p.at_contextual_kw(T![macro_rules]));
p.bump_remap(T![macro_rules]);
p.expect(T![!]);
- // Special-case `macro_rules! try`.
- // This is a hack until we do proper edition support
-
- // test try_macro_rules
- // macro_rules! try { () => {} }
- if p.at(T![try]) {
- let m = p.start();
- p.bump_remap(IDENT);
- m.complete(p, NAME);
- } else {
- name(p);
- }
+ name(p);
match p.current() {
// test macro_rules_non_brace