about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-03-05 18:22:13 -0800
committerPatrick Walton <pcwalton@mimiga.net>2013-03-07 22:32:55 -0800
commit954ae9c975cebb7186dfc1182a68d2559bdef4bd (patch)
tree32be334480b45806ecd242400f23b42befa4e648 /src/libsyntax
parent4e3dbfe05257b4f5862e7b57777cba6d179d9cc0 (diff)
downloadrust-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.rs1
-rw-r--r--src/libsyntax/ext/build.rs7
-rw-r--r--src/libsyntax/ext/log_syntax.rs5
-rw-r--r--src/libsyntax/fold.rs6
-rw-r--r--src/libsyntax/parse/parser.rs30
-rw-r--r--src/libsyntax/print/pprust.rs16
-rw-r--r--src/libsyntax/visit.rs4
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); }