From 98718e0544f42e55642d2838b00d6a7bef1e2414 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Fri, 15 Jan 2021 21:07:38 +0100 Subject: Wrap remaining self/super/crate in Name{Ref} --- crates/parser/src/grammar.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'crates/parser/src/grammar.rs') diff --git a/crates/parser/src/grammar.rs b/crates/parser/src/grammar.rs index bb9ffea8b..6913e9ec2 100644 --- a/crates/parser/src/grammar.rs +++ b/crates/parser/src/grammar.rs @@ -190,17 +190,25 @@ fn opt_visibility(p: &mut Parser) -> bool { // test crate_visibility // pub(crate) struct S; // pub(self) struct S; - // pub(self) struct S; - // pub(self) struct S; + // pub(super) struct S; // test pub_parens_typepath // struct B(pub (super::A)); // struct B(pub (crate::A,)); T![crate] | T![self] | T![super] if p.nth(2) != T![:] => { p.bump_any(); + let path_m = p.start(); + let path_segment_m = p.start(); + let name_ref_m = p.start(); p.bump_any(); + name_ref_m.complete(p, NAME_REF); + path_segment_m.complete(p, PATH_SEGMENT); + path_m.complete(p, PATH); p.expect(T![')']); } + // test crate_visibility_in + // pub(in super::A) struct S; + // pub(in crate) struct S; T![in] => { p.bump_any(); p.bump_any(); -- cgit v1.2.3