parse interpolated visibility tokens
This commit is contained in:
parent
06411c4769
commit
16010c2f50
3 changed files with 18 additions and 3 deletions
|
@ -799,7 +799,8 @@ fn is_in_follow(tok: "ed::TokenTree, frag: &str) -> Result<bool, (String, &'
|
|||
Ident(i) if i.name != "priv" => Ok(true),
|
||||
_ => Ok(false)
|
||||
},
|
||||
TokenTree::MetaVarDecl(_, _, frag) if frag.name =="ident" || frag.name == "ty" => Ok(true),
|
||||
TokenTree::MetaVarDecl(_, _, frag)
|
||||
if frag.name =="ident" || frag.name == "ty" => Ok(true),
|
||||
_ => Ok(false)
|
||||
}
|
||||
},
|
||||
|
|
|
@ -5057,6 +5057,8 @@ impl<'a> Parser<'a> {
|
|||
/// a function definition, it's not a tuple struct field) and the contents within the parens
|
||||
/// isn't valid, emit a proper diagnostic.
|
||||
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)
|
||||
}
|
||||
|
|
|
@ -1,3 +1,13 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![allow(dead_code, unused_imports)]
|
||||
|
||||
/**
|
||||
|
@ -96,11 +106,13 @@ macro_rules! vis_parse_struct {
|
|||
vis_parse_struct! { @parse_tuple $(#[$($attrs)*])*, , $name, $($body)* }
|
||||
};
|
||||
|
||||
(@parse_fields $(#[$attrs:meta])*, $vis:vis, $name:ident, $($fvis:vis $fname:ident: $fty:ty),* $(,)*) => {
|
||||
(@parse_fields
|
||||
$(#[$attrs:meta])*, $vis:vis, $name:ident, $($fvis:vis $fname:ident: $fty:ty),* $(,)*) => {
|
||||
$(#[$attrs])* $vis struct $name { $($fvis $fname: $fty,)* }
|
||||
};
|
||||
|
||||
(@parse_tuple $(#[$attrs:meta])*, $vis:vis, $name:ident, $($fvis:vis $fty:ty),* $(,)*) => {
|
||||
(@parse_tuple
|
||||
$(#[$attrs:meta])*, $vis:vis, $name:ident, $($fvis:vis $fty:ty),* $(,)*) => {
|
||||
$(#[$attrs])* $vis struct $name ( $($fvis $fty,)* );
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue