From b10e437039c2d7e300f6be6b5de6446419a2d660 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 28 Jul 2020 20:59:48 +0200 Subject: Fix nameref parsing --- crates/ra_parser/src/grammar.rs | 4 ---- crates/ra_parser/src/grammar/items.rs | 8 +++++++- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'crates/ra_parser/src') diff --git a/crates/ra_parser/src/grammar.rs b/crates/ra_parser/src/grammar.rs index caedeead0..de2c98afd 100644 --- a/crates/ra_parser/src/grammar.rs +++ b/crates/ra_parser/src/grammar.rs @@ -270,10 +270,6 @@ fn name_ref(p: &mut Parser) { let m = p.start(); p.bump(IDENT); m.complete(p, NAME_REF); - } else if p.at(T![self]) { - let m = p.start(); - p.bump(T![self]); - m.complete(p, T![self]); } else { p.err_and_bump("expected identifier"); } diff --git a/crates/ra_parser/src/grammar/items.rs b/crates/ra_parser/src/grammar/items.rs index 97642bc24..ffcdaaa99 100644 --- a/crates/ra_parser/src/grammar/items.rs +++ b/crates/ra_parser/src/grammar/items.rs @@ -304,7 +304,13 @@ fn extern_crate_item(p: &mut Parser, m: Marker) { p.bump(T![extern]); assert!(p.at(T![crate])); p.bump(T![crate]); - name_ref(p); + + if p.at(T![self]) { + p.bump(T![self]); + } else { + name_ref(p); + } + opt_alias(p); p.expect(T![;]); m.complete(p, EXTERN_CRATE_ITEM); -- cgit v1.2.3