diff options
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 417d973ee0d..5f2ea6f42f6 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -2278,8 +2278,18 @@ class parser { let ident = self.parse_ident(); self.parse_region_param(); let tps = self.parse_ty_params(); + + // Parse traits, if necessary. + let traits; + if self.token == token::COLON { + self.bump(); + traits = self.parse_trait_ref_list(token::LBRACE); + } else { + traits = ~[]; + } + let meths = self.parse_trait_methods(); - (ident, item_trait(tps, meths), none) + (ident, item_trait(tps, traits, meths), none) } // Parses four variants (with the region/type params always optional): |
