@@ -416,6 +416,16 @@ priv impl @ext_ctxt {
416416 self . expr ( span, ast:: expr_call ( expr, args, ast:: NoSugar ) )
417417 }
418418
419+ fn expr_method_call (
420+ & self ,
421+ span : span ,
422+ expr : @ast:: expr ,
423+ ident : ast:: ident ,
424+ +args : ~[ @ast:: expr ]
425+ ) -> @ast:: expr {
426+ self . expr ( span, ast:: expr_method_call ( expr, ident, ~[ ] , args, ast:: NoSugar ) )
427+ }
428+
419429 fn lambda_expr ( & self , expr : @ast:: expr ) -> @ast:: expr {
420430 self . lambda ( self . expr_blk ( expr) )
421431 }
@@ -712,30 +722,24 @@ fn mk_struct_ser_impl(
712722 let fields = do mk_struct_fields ( fields) . mapi |idx, field| {
713723 // ast for `|| self.$(name).encode(__s)`
714724 let expr_lambda = cx. lambda_expr (
715- cx. expr_call (
725+ cx. expr_method_call (
716726 span,
717727 cx. expr_field (
718728 span,
719- cx. expr_field (
720- span,
721- cx. expr_var ( span, ~"self ") ,
722- field. ident
723- ) ,
724- cx. ident_of ( ~"encode")
729+ cx. expr_var ( span, ~"self ") ,
730+ field. ident
725731 ) ,
732+ cx. ident_of ( ~"encode") ,
726733 ~[ cx. expr_var ( span, ~"__s") ]
727734 )
728735 ) ;
729736
730737 // ast for `__s.emit_field($(name), $(idx), $(expr_lambda))`
731738 cx. stmt (
732- cx. expr_call (
739+ cx. expr_method_call (
733740 span,
734- cx. expr_field (
735- span,
736- cx. expr_var ( span, ~"__s") ,
737- cx. ident_of ( ~"emit_field")
738- ) ,
741+ cx. expr_var ( span, ~"__s") ,
742+ cx. ident_of ( ~"emit_field") ,
739743 ~[
740744 cx. lit_str ( span, @cx. str_of ( field. ident ) ) ,
741745 cx. lit_uint ( span, idx) ,
@@ -746,13 +750,10 @@ fn mk_struct_ser_impl(
746750 } ;
747751
748752 // ast for `__s.emit_struct($(name), || $(fields))`
749- let ser_body = cx. expr_call (
753+ let ser_body = cx. expr_method_call (
750754 span,
751- cx. expr_field (
752- span,
753- cx. expr_var ( span, ~"__s") ,
754- cx. ident_of ( ~"emit_struct")
755- ) ,
755+ cx. expr_var ( span, ~"__s") ,
756+ cx. ident_of ( ~"emit_struct") ,
756757 ~[
757758 cx. lit_str ( span, @cx. str_of ( ident) ) ,
758759 cx. lit_uint ( span, vec:: len ( fields) ) ,
@@ -788,13 +789,10 @@ fn mk_struct_deser_impl(
788789 ) ;
789790
790791 // ast for `__d.read_field($(name), $(idx), $(expr_lambda))`
791- let expr: @ast:: expr = cx. expr_call (
792+ let expr: @ast:: expr = cx. expr_method_call (
792793 span,
793- cx. expr_field (
794- span,
795- cx. expr_var ( span, ~"__d") ,
796- cx. ident_of ( ~"read_field")
797- ) ,
794+ cx. expr_var ( span, ~"__d") ,
795+ cx. ident_of ( ~"read_field") ,
798796 ~[
799797 cx. lit_str ( span, @cx. str_of ( field. ident ) ) ,
800798 cx. lit_uint ( span, idx) ,
@@ -813,13 +811,10 @@ fn mk_struct_deser_impl(
813811 } ;
814812
815813 // ast for `read_struct($(name), || $(fields))`
816- let body = cx. expr_call (
814+ let body = cx. expr_method_call (
817815 span,
818- cx. expr_field (
819- span,
820- cx. expr_var ( span, ~"__d") ,
821- cx. ident_of ( ~"read_struct")
822- ) ,
816+ cx. expr_var ( span, ~"__d") ,
817+ cx. ident_of ( ~"read_struct") ,
823818 ~[
824819 cx. lit_str ( span, @cx. str_of ( ident) ) ,
825820 cx. lit_uint ( span, vec:: len ( fields) ) ,
@@ -943,13 +938,10 @@ fn ser_variant(
943938
944939 // ast for `|| $(v).encode(__s)`
945940 let expr_encode = cx.lambda_expr(
946- cx.expr_call (
941+ cx.expr_method_call (
947942 span,
948- cx.expr_field(
949- span,
950- cx.expr_path(span, ~[names[a_idx]]),
951- cx.ident_of(~" encode")
952- ),
943+ cx.expr_path(span, ~[names[a_idx]]),
944+ cx.ident_of(~" encode"),
953945 ~[cx.expr_var(span, ~" __s")]
954946 )
955947 );
@@ -965,13 +957,10 @@ fn ser_variant(
965957 };
966958
967959 // ast for `__s.emit_enum_variant($(name), $(idx), $(sz), $(lambda))`
968- let body = cx.expr_call (
960+ let body = cx.expr_method_call (
969961 span,
970- cx.expr_field(
971- span,
972- cx.expr_var(span, ~" __s"),
973- cx.ident_of(~" emit_enum_variant")
974- ),
962+ cx.expr_var(span, ~" __s"),
963+ cx.ident_of(~" emit_enum_variant"),
975964 ~[
976965 cx.lit_str(span, @cx.str_of(v_name)),
977966 cx.lit_uint(span, v_idx),
@@ -1019,13 +1008,10 @@ fn mk_enum_ser_body(
10191008 );
10201009
10211010 // ast for `__s.emit_enum($(name), || $(match_expr))`
1022- cx.expr_call (
1011+ cx.expr_method_call (
10231012 span,
1024- cx.expr_field(
1025- span,
1026- cx.expr_var(span, ~" __s"),
1027- cx.ident_of(~" emit_enum")
1028- ),
1013+ cx.expr_var(span, ~" __s"),
1014+ cx.ident_of(~" emit_enum"),
10291015 ~[
10301016 cx.lit_str(span, @cx.str_of(name)),
10311017 cx.lambda_expr(match_expr),
@@ -1055,13 +1041,10 @@ fn mk_enum_deser_variant_nary(
10551041 );
10561042
10571043 // ast for `__d.read_enum_variant_arg($(a_idx), $(expr_lambda))`
1058- cx.expr_call (
1044+ cx.expr_method_call (
10591045 span,
1060- cx.expr_field(
1061- span,
1062- cx.expr_var(span, ~" __d"),
1063- cx.ident_of(~" read_enum_variant_arg")
1064- ),
1046+ cx.expr_var(span, ~" __d"),
1047+ cx.ident_of(~" read_enum_variant_arg"),
10651048 ~[cx.lit_uint(span, idx), expr_lambda]
10661049 )
10671050 };
@@ -1171,25 +1154,19 @@ fn mk_enum_deser_body(
11711154
11721155 // ast for `__d.read_enum_variant($(expr_lambda))`
11731156 let expr_lambda = ext_cx.lambda_expr(
1174- ext_cx.expr_call (
1157+ ext_cx.expr_method_call (
11751158 span,
1176- ext_cx.expr_field(
1177- span,
1178- ext_cx.expr_var(span, ~" __d"),
1179- ext_cx.ident_of(~" read_enum_variant")
1180- ),
1159+ ext_cx.expr_var(span, ~" __d"),
1160+ ext_cx.ident_of(~" read_enum_variant"),
11811161 ~[expr_lambda]
11821162 )
11831163 );
11841164
11851165 // ast for `__d.read_enum($(e_name), $(expr_lambda))`
1186- ext_cx.expr_call (
1166+ ext_cx.expr_method_call (
11871167 span,
1188- ext_cx.expr_field(
1189- span,
1190- ext_cx.expr_var(span, ~" __d"),
1191- ext_cx.ident_of(~" read_enum")
1192- ),
1168+ ext_cx.expr_var(span, ~" __d"),
1169+ ext_cx.ident_of(~" read_enum"),
11931170 ~[
11941171 ext_cx.lit_str(span, @ext_cx.str_of(name)),
11951172 expr_lambda
0 commit comments