diff options
Diffstat (limited to 'crates/parser/src/grammar.rs')
-rw-r--r-- | crates/parser/src/grammar.rs | 12 |
1 files changed, 10 insertions, 2 deletions
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 { | |||
190 | // test crate_visibility | 190 | // test crate_visibility |
191 | // pub(crate) struct S; | 191 | // pub(crate) struct S; |
192 | // pub(self) struct S; | 192 | // pub(self) struct S; |
193 | // pub(self) struct S; | 193 | // pub(super) struct S; |
194 | // pub(self) struct S; | ||
195 | 194 | ||
196 | // test pub_parens_typepath | 195 | // test pub_parens_typepath |
197 | // struct B(pub (super::A)); | 196 | // struct B(pub (super::A)); |
198 | // struct B(pub (crate::A,)); | 197 | // struct B(pub (crate::A,)); |
199 | T![crate] | T![self] | T![super] if p.nth(2) != T![:] => { | 198 | T![crate] | T![self] | T![super] if p.nth(2) != T![:] => { |
200 | p.bump_any(); | 199 | p.bump_any(); |
200 | let path_m = p.start(); | ||
201 | let path_segment_m = p.start(); | ||
202 | let name_ref_m = p.start(); | ||
201 | p.bump_any(); | 203 | p.bump_any(); |
204 | name_ref_m.complete(p, NAME_REF); | ||
205 | path_segment_m.complete(p, PATH_SEGMENT); | ||
206 | path_m.complete(p, PATH); | ||
202 | p.expect(T![')']); | 207 | p.expect(T![')']); |
203 | } | 208 | } |
209 | // test crate_visibility_in | ||
210 | // pub(in super::A) struct S; | ||
211 | // pub(in crate) struct S; | ||
204 | T![in] => { | 212 | T![in] => { |
205 | p.bump_any(); | 213 | p.bump_any(); |
206 | p.bump_any(); | 214 | p.bump_any(); |