libsyntax: Don't allow impl (Trait) for Type
(with the parentheses).
This commit is contained in:
parent
943d7adedc
commit
36909c7575
1 changed files with 5 additions and 1 deletions
|
@ -3107,11 +3107,15 @@ pub impl Parser {
|
||||||
// XXX: clownshoes
|
// XXX: clownshoes
|
||||||
let ident = special_idents::clownshoes_extensions;
|
let ident = special_idents::clownshoes_extensions;
|
||||||
|
|
||||||
|
// Special case: if the next identifier that follows is '(', don't
|
||||||
|
// allow this to be parsed as a trait.
|
||||||
|
let could_be_trait = *self.token != token::LPAREN;
|
||||||
|
|
||||||
// Parse the trait.
|
// Parse the trait.
|
||||||
let mut ty = self.parse_ty(false);
|
let mut ty = self.parse_ty(false);
|
||||||
|
|
||||||
// Parse traits, if necessary.
|
// Parse traits, if necessary.
|
||||||
let opt_trait = if self.eat_keyword(&~"for") {
|
let opt_trait = if could_be_trait && self.eat_keyword(&~"for") {
|
||||||
// New-style trait. Reinterpret the type as a trait.
|
// New-style trait. Reinterpret the type as a trait.
|
||||||
let opt_trait_ref = match ty.node {
|
let opt_trait_ref = match ty.node {
|
||||||
ty_path(path, node_id) => {
|
ty_path(path, node_id) => {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue