Allow _ param name in trait default method for #8468.
This commit is contained in:
parent
7ff102a685
commit
4fa28a2e85
1 changed files with 14 additions and 2 deletions
|
@ -347,6 +347,13 @@ impl Drop for Parser {
|
|||
fn drop(&self) {}
|
||||
}
|
||||
|
||||
fn is_plain_ident_or_underscore(t: &token::Token) -> bool {
|
||||
match *t {
|
||||
token::IDENT(_, false) | token::UNDERSCORE => true,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
||||
impl Parser {
|
||||
// convert a token to a string using self's reader
|
||||
pub fn token_to_str(&self, token: &token::Token) -> ~str {
|
||||
|
@ -1242,11 +1249,13 @@ impl Parser {
|
|||
_ => 0
|
||||
};
|
||||
|
||||
debug!("parser is_named_argument offset:%u", offset);
|
||||
|
||||
if offset == 0 {
|
||||
is_plain_ident(&*self.token)
|
||||
is_plain_ident_or_underscore(&*self.token)
|
||||
&& self.look_ahead(1, |t| *t == token::COLON)
|
||||
} else {
|
||||
self.look_ahead(offset, |t| is_plain_ident(t))
|
||||
self.look_ahead(offset, |t| is_plain_ident_or_underscore(t))
|
||||
&& self.look_ahead(offset + 1, |t| *t == token::COLON)
|
||||
}
|
||||
}
|
||||
|
@ -1256,6 +1265,8 @@ impl Parser {
|
|||
pub fn parse_arg_general(&self, require_name: bool) -> arg {
|
||||
let is_mutbl = self.eat_keyword(keywords::Mut);
|
||||
let pat = if require_name || self.is_named_argument() {
|
||||
debug!("parse_arg_general parse_pat (require_name:%?)",
|
||||
require_name);
|
||||
self.parse_arg_mode();
|
||||
let pat = self.parse_pat();
|
||||
|
||||
|
@ -1266,6 +1277,7 @@ impl Parser {
|
|||
self.expect(&token::COLON);
|
||||
pat
|
||||
} else {
|
||||
debug!("parse_arg_general ident_to_pat");
|
||||
ast_util::ident_to_pat(self.get_id(),
|
||||
*self.last_span,
|
||||
special_idents::invalid)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue