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),
|
Ident(i) if i.name != "priv" => Ok(true),
|
||||||
_ => Ok(false)
|
_ => 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)
|
_ => 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
|
/// a function definition, it's not a tuple struct field) and the contents within the parens
|
||||||
/// isn't valid, emit a proper diagnostic.
|
/// isn't valid, emit a proper diagnostic.
|
||||||
pub 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) {
|
if !self.eat_keyword(keywords::Pub) {
|
||||||
return Ok(Visibility::Inherited)
|
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)]
|
#![allow(dead_code, unused_imports)]
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -96,11 +106,13 @@ macro_rules! vis_parse_struct {
|
||||||
vis_parse_struct! { @parse_tuple $(#[$($attrs)*])*, , $name, $($body)* }
|
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,)* }
|
$(#[$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,)* );
|
$(#[$attrs])* $vis struct $name ( $($fvis $fty,)* );
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue