diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2013-03-05 18:22:13 -0800 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2013-03-07 22:32:55 -0800 |
| commit | 954ae9c975cebb7186dfc1182a68d2559bdef4bd (patch) | |
| tree | 32be334480b45806ecd242400f23b42befa4e648 /src/libsyntax | |
| parent | 4e3dbfe05257b4f5862e7b57777cba6d179d9cc0 (diff) | |
| download | rust-954ae9c975cebb7186dfc1182a68d2559bdef4bd.tar.gz rust-954ae9c975cebb7186dfc1182a68d2559bdef4bd.zip | |
libsyntax: Remove struct literal expressions from the compiler
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast.rs | 1 | ||||
| -rw-r--r-- | src/libsyntax/ext/build.rs | 7 | ||||
| -rw-r--r-- | src/libsyntax/ext/log_syntax.rs | 5 | ||||
| -rw-r--r-- | src/libsyntax/fold.rs | 6 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 30 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 16 | ||||
| -rw-r--r-- | src/libsyntax/visit.rs | 4 |
7 files changed, 5 insertions, 64 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 256e48a69b3..68afa38ba89 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -564,7 +564,6 @@ pub enum CallSugar { pub enum expr_ { expr_vstore(@expr, expr_vstore), expr_vec(~[@expr], mutability), - expr_rec(~[field], Option<@expr>), expr_call(@expr, ~[@expr], CallSugar), expr_method_call(@expr, ident, ~[@Ty], ~[@expr], CallSugar), expr_tup(~[@expr]), diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index a42564ff2ec..5d071b8d517 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -162,13 +162,6 @@ pub fn mk_field(sp: span, f: &Field) -> ast::field { pub fn mk_fields(sp: span, fields: ~[Field]) -> ~[ast::field] { fields.map(|f| mk_field(sp, f)) } -pub fn mk_rec_e(cx: ext_ctxt, - sp: span, - +fields: ~[Field]) - -> @ast::expr { - mk_expr(cx, sp, ast::expr_rec(mk_fields(sp, fields), - option::None::<@ast::expr>)) -} pub fn mk_struct_e(cx: ext_ctxt, sp: span, +ctor_path: ~[ast::ident], diff --git a/src/libsyntax/ext/log_syntax.rs b/src/libsyntax/ext/log_syntax.rs index 9072f4bdd01..8a8583420f8 100644 --- a/src/libsyntax/ext/log_syntax.rs +++ b/src/libsyntax/ext/log_syntax.rs @@ -32,7 +32,10 @@ pub fn expand_syntax_ext(cx: ext_ctxt, MRExpr(@ast::expr { id: cx.next_id(), callee_id: cx.next_id(), - node: ast::expr_rec(~[], option::None), + node: ast::expr_lit(@codemap::spanned { + node: ast::lit_nil, + span: sp + }), span: sp, }) } diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs index 3fbc1571c1b..3ada03c08f4 100644 --- a/src/libsyntax/fold.rs +++ b/src/libsyntax/fold.rs @@ -479,12 +479,6 @@ pub fn noop_fold_expr(e: &expr_, fld: @ast_fold) -> expr_ { expr_repeat(expr, count, mutt) => { expr_repeat(fld.fold_expr(expr), fld.fold_expr(count), mutt) } - expr_rec(ref fields, maybe_expr) => { - expr_rec( - fields.map(|x| fold_field(*x)), - maybe_expr.map(|x| fld.fold_expr(*x)) - ) - } expr_tup(ref elts) => expr_tup(elts.map(|x| fld.fold_expr(*x))), expr_call(f, ref args, blk) => { expr_call( diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index b159e79a09c..498b6f3ca70 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -25,7 +25,7 @@ use ast::{expr_assert, expr_assign, expr_assign_op, expr_binary, expr_block}; use ast::{expr_break, expr_call, expr_cast, expr_copy, expr_do_body}; use ast::{expr_field, expr_fn_block, expr_if, expr_index}; use ast::{expr_lit, expr_log, expr_loop, expr_loop_body, expr_mac}; -use ast::{expr_method_call, expr_paren, expr_path, expr_rec, expr_repeat}; +use ast::{expr_method_call, expr_paren, expr_path, expr_repeat}; use ast::{expr_ret, expr_swap, expr_struct, expr_tup, expr_unary}; use ast::{expr_vec, expr_vstore, expr_vstore_mut_box}; use ast::{expr_vstore_fixed, expr_vstore_slice, expr_vstore_box}; @@ -1956,34 +1956,6 @@ pub impl Parser { self.look_ahead(2) == token::COLON)) } - fn parse_record_literal(&self) -> expr_ { - self.expect(&token::LBRACE); - let mut fields = ~[self.parse_field(token::COLON)]; - let mut base = None; - while *self.token != token::RBRACE { - if *self.token == token::COMMA - && self.look_ahead(1) == token::DOTDOT { - self.bump(); - self.bump(); - base = Some(self.parse_expr()); break; - } - - if self.try_parse_obsolete_with() { - break; - } - - self.expect(&token::COMMA); - if *self.token == token::RBRACE { - // record ends by an optional trailing comma - break; - } - fields.push(self.parse_field(token::COLON)); - } - self.expect(&token::RBRACE); - self.warn(~"REC"); - return expr_rec(fields, base); - } - fn parse_match_expr(&self) -> @expr { let lo = self.last_span.lo; let discriminant = self.parse_expr(); diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 1d7d4d0d65f..8e26f37d7de 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1169,22 +1169,6 @@ pub fn print_expr(s: @ps, &&expr: @ast::expr) { end(s); } - ast::expr_rec(ref fields, wth) => { - word(s.s, ~"{"); - commasep_cmnt(s, consistent, (*fields), print_field, get_span); - match wth { - Some(expr) => { - ibox(s, indent_unit); - word(s.s, ~","); - space(s.s); - word(s.s, ~".."); - print_expr(s, expr); - end(s); - } - _ => word(s.s, ~",") - } - word(s.s, ~"}"); - } ast::expr_struct(path, ref fields, wth) => { print_path(s, path, true); word(s.s, ~"{"); diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index 47fe1b5ba0b..2f086534ed5 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -479,10 +479,6 @@ pub fn visit_expr<E>(ex: @expr, e: E, v: vt<E>) { (v.visit_expr)(element, e, v); (v.visit_expr)(count, e, v); } - expr_rec(ref flds, base) => { - for flds.each |f| { (v.visit_expr)(f.node.expr, e, v); } - visit_expr_opt(base, e, v); - } expr_struct(p, ref flds, base) => { visit_path(p, e, v); for flds.each |f| { (v.visit_expr)(f.node.expr, e, v); } |
