diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2012-07-31 17:31:24 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2012-07-31 17:33:20 -0700 |
| commit | c88933d714f12be6bdca80cc9583a1e5670cfc62 (patch) | |
| tree | 8d17f1dc5cec7892ff7cc71bb4b5cf0d3a883f1b /src/libsyntax/parse/parser.rs | |
| parent | c4bb8f8aafd25b9d5e68481af7088ab9e47c1e29 (diff) | |
| download | rust-c88933d714f12be6bdca80cc9583a1e5670cfc62.tar.gz rust-c88933d714f12be6bdca80cc9583a1e5670cfc62.zip | |
rustc: Implement unary move. Closes #917.
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 28ad7173be8..aaafbf0ef24 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -31,12 +31,12 @@ import ast::{_mod, add, alt_check, alt_exhaustive, arg, arm, attribute, expr_index, expr_lit, expr_log, expr_loop, expr_loop_body, expr_mac, expr_move, expr_new, expr_path, expr_rec, expr_ret, expr_swap, expr_struct, expr_tup, expr_unary, - expr_vec, expr_vstore, expr_while, extern_fn, field, fn_decl, - foreign_item, foreign_item_fn, foreign_mod, ident, impure_fn, - infer, init_assign, init_move, initializer, instance_var, item, - item_, item_class, item_const, item_enum, item_fn, - item_foreign_mod, item_impl, item_mac, item_mod, item_trait, - item_ty, lit, lit_, lit_bool, lit_float, lit_int, + expr_unary_move, expr_vec, expr_vstore, expr_while, extern_fn, + field, fn_decl, foreign_item, foreign_item_fn, foreign_mod, + ident, impure_fn, infer, init_assign, init_move, initializer, + instance_var, item, item_, item_class, item_const, item_enum, + item_fn, item_foreign_mod, item_impl, item_mac, item_mod, + item_trait, item_ty, lit, lit_, lit_bool, lit_float, lit_int, lit_int_unsuffixed, lit_nil, lit_str, lit_uint, local, m_const, m_imm, m_mutbl, mac_, mac_aq, mac_ellipsis, mac_invoc, mac_invoc_tt, mac_var, matcher, match_nonterminal, @@ -854,6 +854,10 @@ class parser { let e = self.parse_expr(); ex = expr_copy(e); hi = e.span.hi; + } else if self.eat_keyword(~"move") { + let e = self.parse_expr(); + ex = expr_unary_move(e); + hi = e.span.hi; } else if self.token == token::MOD_SEP || is_ident(self.token) && !self.is_keyword(~"true") && !self.is_keyword(~"false") { |
