about summary refs log tree commit diff
path: root/src/libsyntax/ext/auto_encode.rs
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2013-03-20 21:28:30 -0400
committerNiko Matsakis <niko@alum.mit.edu>2013-03-26 15:16:58 -0400
commite11d13f3de084fe73d754ca206ad70737bb5957d (patch)
tree2214105e99cd6fc25054ac291a702e0ae460fd8a /src/libsyntax/ext/auto_encode.rs
parentd96bbb907edf803dc2917b3e69d387f5b6657100 (diff)
downloadrust-e11d13f3de084fe73d754ca206ad70737bb5957d.tar.gz
rust-e11d13f3de084fe73d754ca206ad70737bb5957d.zip
Rip out old code that still structured method calls as a
expr_call(expr_field(...)) rather than an expr_method_call.
There is probably more such code in trans that should be removed.
Diffstat (limited to 'src/libsyntax/ext/auto_encode.rs')
-rw-r--r--src/libsyntax/ext/auto_encode.rs111
1 files changed, 44 insertions, 67 deletions
diff --git a/src/libsyntax/ext/auto_encode.rs b/src/libsyntax/ext/auto_encode.rs
index 54ca5dc0d72..e81e460e832 100644
--- a/src/libsyntax/ext/auto_encode.rs
+++ b/src/libsyntax/ext/auto_encode.rs
@@ -416,6 +416,16 @@ priv impl @ext_ctxt {
         self.expr(span, ast::expr_call(expr, args, ast::NoSugar))
     }
 
+    fn expr_method_call(
+        &self,
+        span: span,
+        expr: @ast::expr,
+        ident: ast::ident,
+        +args: ~[@ast::expr]
+    ) -> @ast::expr {
+        self.expr(span, ast::expr_method_call(expr, ident, ~[], args, ast::NoSugar))
+    }
+
     fn lambda_expr(&self, expr: @ast::expr) -> @ast::expr {
         self.lambda(self.expr_blk(expr))
     }
@@ -712,30 +722,24 @@ fn mk_struct_ser_impl(
     let fields = do mk_struct_fields(fields).mapi |idx, field| {
         // ast for `|| self.$(name).encode(__s)`
         let expr_lambda = cx.lambda_expr(
-            cx.expr_call(
+            cx.expr_method_call(
                 span,
                 cx.expr_field(
                     span,
-                    cx.expr_field(
-                        span,
-                        cx.expr_var(span, ~"self"),
-                        field.ident
-                    ),
-                    cx.ident_of(~"encode")
+                    cx.expr_var(span, ~"self"),
+                    field.ident
                 ),
+                cx.ident_of(~"encode"),
                 ~[cx.expr_var(span, ~"__s")]
             )
         );
 
         // ast for `__s.emit_field($(name), $(idx), $(expr_lambda))`
         cx.stmt(
-            cx.expr_call(
+            cx.expr_method_call(
                 span,
-                cx.expr_field(
-                    span,
-                    cx.expr_var(span, ~"__s"),
-                    cx.ident_of(~"emit_field")
-                ),
+                cx.expr_var(span, ~"__s"),
+                cx.ident_of(~"emit_field"),
                 ~[
                     cx.lit_str(span, @cx.str_of(field.ident)),
                     cx.lit_uint(span, idx),
@@ -746,13 +750,10 @@ fn mk_struct_ser_impl(
     };
 
     // ast for `__s.emit_struct($(name), || $(fields))`
-    let ser_body = cx.expr_call(
+    let ser_body = cx.expr_method_call(
         span,
-        cx.expr_field(
-            span,
-            cx.expr_var(span, ~"__s"),
-            cx.ident_of(~"emit_struct")
-        ),
+        cx.expr_var(span, ~"__s"),
+        cx.ident_of(~"emit_struct"),
         ~[
             cx.lit_str(span, @cx.str_of(ident)),
             cx.lit_uint(span, vec::len(fields)),
@@ -788,13 +789,10 @@ fn mk_struct_deser_impl(
         );
 
         // ast for `__d.read_field($(name), $(idx), $(expr_lambda))`
-        let expr: @ast::expr = cx.expr_call(
+        let expr: @ast::expr = cx.expr_method_call(
             span,
-            cx.expr_field(
-                span,
-                cx.expr_var(span, ~"__d"),
-                cx.ident_of(~"read_field")
-            ),
+            cx.expr_var(span, ~"__d"),
+            cx.ident_of(~"read_field"),
             ~[
                 cx.lit_str(span, @cx.str_of(field.ident)),
                 cx.lit_uint(span, idx),
@@ -813,13 +811,10 @@ fn mk_struct_deser_impl(
     };
 
     // ast for `read_struct($(name), || $(fields))`
-    let body = cx.expr_call(
+    let body = cx.expr_method_call(
         span,
-        cx.expr_field(
-            span,
-            cx.expr_var(span, ~"__d"),
-            cx.ident_of(~"read_struct")
-        ),
+        cx.expr_var(span, ~"__d"),
+        cx.ident_of(~"read_struct"),
         ~[
             cx.lit_str(span, @cx.str_of(ident)),
             cx.lit_uint(span, vec::len(fields)),
@@ -943,13 +938,10 @@ fn ser_variant(
 
         // ast for `|| $(v).encode(__s)`
         let expr_encode = cx.lambda_expr(
-             cx.expr_call(
+             cx.expr_method_call(
                 span,
-                cx.expr_field(
-                    span,
-                    cx.expr_path(span, ~[names[a_idx]]),
-                    cx.ident_of(~"encode")
-                ),
+                 cx.expr_path(span, ~[names[a_idx]]),
+                 cx.ident_of(~"encode"),
                 ~[cx.expr_var(span, ~"__s")]
             )
         );
@@ -965,13 +957,10 @@ fn ser_variant(
     };
 
     // ast for `__s.emit_enum_variant($(name), $(idx), $(sz), $(lambda))`
-    let body = cx.expr_call(
+    let body = cx.expr_method_call(
         span,
-        cx.expr_field(
-            span,
-            cx.expr_var(span, ~"__s"),
-            cx.ident_of(~"emit_enum_variant")
-        ),
+        cx.expr_var(span, ~"__s"),
+        cx.ident_of(~"emit_enum_variant"),
         ~[
             cx.lit_str(span, @cx.str_of(v_name)),
             cx.lit_uint(span, v_idx),
@@ -1019,13 +1008,10 @@ fn mk_enum_ser_body(
     );
 
     // ast for `__s.emit_enum($(name), || $(match_expr))`
-    cx.expr_call(
+    cx.expr_method_call(
         span,
-        cx.expr_field(
-            span,
-            cx.expr_var(span, ~"__s"),
-            cx.ident_of(~"emit_enum")
-        ),
+        cx.expr_var(span, ~"__s"),
+        cx.ident_of(~"emit_enum"),
         ~[
             cx.lit_str(span, @cx.str_of(name)),
             cx.lambda_expr(match_expr),
@@ -1055,13 +1041,10 @@ fn mk_enum_deser_variant_nary(
         );
 
         // ast for `__d.read_enum_variant_arg($(a_idx), $(expr_lambda))`
-        cx.expr_call(
+        cx.expr_method_call(
             span,
-            cx.expr_field(
-                span,
-                cx.expr_var(span, ~"__d"),
-                cx.ident_of(~"read_enum_variant_arg")
-            ),
+            cx.expr_var(span, ~"__d"),
+            cx.ident_of(~"read_enum_variant_arg"),
             ~[cx.lit_uint(span, idx), expr_lambda]
         )
     };
@@ -1171,25 +1154,19 @@ fn mk_enum_deser_body(
 
     // ast for `__d.read_enum_variant($(expr_lambda))`
     let expr_lambda = ext_cx.lambda_expr(
-        ext_cx.expr_call(
+        ext_cx.expr_method_call(
             span,
-            ext_cx.expr_field(
-                span,
-                ext_cx.expr_var(span, ~"__d"),
-                ext_cx.ident_of(~"read_enum_variant")
-            ),
+            ext_cx.expr_var(span, ~"__d"),
+            ext_cx.ident_of(~"read_enum_variant"),
             ~[expr_lambda]
         )
     );
 
     // ast for `__d.read_enum($(e_name), $(expr_lambda))`
-    ext_cx.expr_call(
+    ext_cx.expr_method_call(
         span,
-        ext_cx.expr_field(
-            span,
-            ext_cx.expr_var(span, ~"__d"),
-            ext_cx.ident_of(~"read_enum")
-        ),
+        ext_cx.expr_var(span, ~"__d"),
+        ext_cx.ident_of(~"read_enum"),
         ~[
             ext_cx.lit_str(span, @ext_cx.str_of(name)),
             expr_lambda