From b65dd9d0908ba75ee4cf128058858aea87e4508a Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 3 Aug 2012 15:02:01 -0700 Subject: rustc: Parse, serialize, and deserialize trait inheritance --- src/libsyntax/parse/parser.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/libsyntax/parse/parser.rs') 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): -- cgit 1.4.1-3-g733a5