diff options
| author | Corey Farwell <coreyf@rwell.org> | 2017-04-17 13:26:19 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-04-17 13:26:19 -0400 |
| commit | 914b6f1f14e62550c9b7ca7f59490aa0f10ef288 (patch) | |
| tree | 21874704c9dba7f4aaf4cbff189927c179a5cd58 /src/libsyntax/parse | |
| parent | 5997806a6a4f1e57491bd9f24c7ac07619bf38d2 (diff) | |
| parent | cfa51f226f8190f74bcd3f8275ae05b9d76d59c4 (diff) | |
| download | rust-914b6f1f14e62550c9b7ca7f59490aa0f10ef288.tar.gz rust-914b6f1f14e62550c9b7ca7f59490aa0f10ef288.zip | |
Rollup merge of #41012 - durka:vis-matcher, r=petrochenkov
:vis matcher for macro_rules Resurrection of @DanielKeep's implementation posted with [RFC 1575](https://github.com/rust-lang/rfcs/pull/1575). @jseyfried was of the opinion that this doesn't need an RFC. Needed before merge: - [x] sign-off from @DanielKeep since I stole his code - [x] feature gate - [x] docs
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/parse/token.rs | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 3b928ea93c7..31669e1bbe3 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -5056,7 +5056,9 @@ impl<'a> Parser<'a> { /// and `pub(super)` for `pub(in super)`. If the following element can't be a tuple (i.e. it's /// a function definition, it's not a tuple struct field) and the contents within the parens /// isn't valid, emit a proper diagnostic. - fn parse_visibility(&mut self, can_take_tuple: bool) -> PResult<'a, Visibility> { + pub fn parse_visibility(&mut self, can_take_tuple: bool) -> PResult<'a, Visibility> { + maybe_whole!(self, NtVis, |x| x); + if !self.eat_keyword(keywords::Pub) { return Ok(Visibility::Inherited) } diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 74aa3984a9a..25cabef70c1 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -363,6 +363,7 @@ pub enum Nonterminal { /// Stuff inside brackets for attributes NtMeta(ast::MetaItem), NtPath(ast::Path), + NtVis(ast::Visibility), NtTT(TokenTree), // These are not exposed to macros, but are used by quasiquote. NtArm(ast::Arm), @@ -392,6 +393,7 @@ impl fmt::Debug for Nonterminal { NtGenerics(..) => f.pad("NtGenerics(..)"), NtWhereClause(..) => f.pad("NtWhereClause(..)"), NtArg(..) => f.pad("NtArg(..)"), + NtVis(..) => f.pad("NtVis(..)"), } } } |
