diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2012-07-16 20:17:57 -0700 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2012-07-16 20:18:18 -0700 |
| commit | 0e42004babc7b965a10056084a8ae76c72140a44 (patch) | |
| tree | dd0484f1854d0c059b61516ee42812f16751fd94 /src/libsyntax/parse/parser.rs | |
| parent | d809336d0f5f4efa11336878736aeefe1fbae895 (diff) | |
| download | rust-0e42004babc7b965a10056084a8ae76c72140a44.tar.gz rust-0e42004babc7b965a10056084a8ae76c72140a44.zip | |
introduce an owned kind for data that contains no borrowed ptrs
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index fa0361e797b..dcc8f7430ca 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -16,7 +16,8 @@ import dvec::{dvec, extensions}; import vec::{push}; import ast::{_mod, add, alt_check, alt_exhaustive, arg, arm, attribute, bitand, bitor, bitxor, blk, blk_check_mode, bound_const, - bound_copy, bound_send, bound_trait, box, by_copy, by_move, + bound_copy, bound_send, bound_trait, bound_owned, + box, by_copy, by_move, by_mutbl_ref, by_ref, by_val, capture_clause, capture_item, carg_base, carg_ident, cdir_dir_mod, cdir_src_mod, cdir_view_item, checked_expr, claimed_expr, class_immutable, @@ -1935,12 +1936,16 @@ class parser { let ident = self.parse_ident(); if self.eat(token::COLON) { while self.token != token::COMMA && self.token != token::GT { - if self.eat_keyword(~"send") { push(bounds, bound_send); } - else if self.eat_keyword(~"copy") { push(bounds, bound_copy) } + if self.eat_keyword(~"send") { + push(bounds, bound_send); } + else if self.eat_keyword(~"copy") { + push(bounds, bound_copy) } else if self.eat_keyword(~"const") { - push(bounds, bound_const) - } - else { push(bounds, bound_trait(self.parse_ty(false))); } + push(bounds, bound_const); + } else if self.eat_keyword(~"owned") { + push(bounds, bound_owned); + } else { + push(bounds, bound_trait(self.parse_ty(false))); } } } ret {ident: ident, id: self.get_id(), bounds: @bounds}; |
