rustc: Parse, serialize, and deserialize trait inheritance

This commit is contained in:
Patrick Walton
2012-08-03 15:02:01 -07:00
parent a805a1fb37
commit b65dd9d090
13 changed files with 69 additions and 21 deletions

View File

@@ -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):