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 drop(&self) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn is_plain_ident_or_underscore(t: &token::Token) -> bool {
|
||||||
|
match *t {
|
||||||
|
token::IDENT(_, false) | token::UNDERSCORE => true,
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl Parser {
|
impl Parser {
|
||||||
// convert a token to a string using self's reader
|
// convert a token to a string using self's reader
|
||||||
pub fn token_to_str(&self, token: &token::Token) -> ~str {
|
pub fn token_to_str(&self, token: &token::Token) -> ~str {
|
||||||
|
@ -1242,11 +1249,13 @@ impl Parser {
|
||||||
_ => 0
|
_ => 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
debug!("parser is_named_argument offset:%u", offset);
|
||||||
|
|
||||||
if offset == 0 {
|
if offset == 0 {
|
||||||
is_plain_ident(&*self.token)
|
is_plain_ident_or_underscore(&*self.token)
|
||||||
&& self.look_ahead(1, |t| *t == token::COLON)
|
&& self.look_ahead(1, |t| *t == token::COLON)
|
||||||
} else {
|
} 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)
|
&& 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 {
|
pub fn parse_arg_general(&self, require_name: bool) -> arg {
|
||||||
let is_mutbl = self.eat_keyword(keywords::Mut);
|
let is_mutbl = self.eat_keyword(keywords::Mut);
|
||||||
let pat = if require_name || self.is_named_argument() {
|
let pat = if require_name || self.is_named_argument() {
|
||||||
|
debug!("parse_arg_general parse_pat (require_name:%?)",
|
||||||
|
require_name);
|
||||||
self.parse_arg_mode();
|
self.parse_arg_mode();
|
||||||
let pat = self.parse_pat();
|
let pat = self.parse_pat();
|
||||||
|
|
||||||
|
@ -1266,6 +1277,7 @@ impl Parser {
|
||||||
self.expect(&token::COLON);
|
self.expect(&token::COLON);
|
||||||
pat
|
pat
|
||||||
} else {
|
} else {
|
||||||
|
debug!("parse_arg_general ident_to_pat");
|
||||||
ast_util::ident_to_pat(self.get_id(),
|
ast_util::ident_to_pat(self.get_id(),
|
||||||
*self.last_span,
|
*self.last_span,
|
||||||
special_idents::invalid)
|
special_idents::invalid)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue