@@ -966,6 +966,17 @@ impure fn trans_cast(@block_ctxt cx, &ast.expr e, &ast.ann ann) -> result {
966
966
ret e_res;
967
967
}
968
968
969
+ impure fn trans_call ( @block_ctxt cx, & ast. expr f,
970
+ vec[ @ast. expr ] args) -> result {
971
+ auto f_res = trans_lval ( cx, f) ;
972
+ check ( ! f_res. _1 ) ;
973
+ auto args_res = trans_exprs ( f_res. _0 . bcx , args) ;
974
+ auto llargs = vec ( cx. fcx . lltaskptr ) ;
975
+ llargs += args_res. _1 ;
976
+ ret res( args_res. _0 ,
977
+ args_res. _0 . build . FastCall ( f_res. _0 . val , llargs) ) ;
978
+ }
979
+
969
980
impure fn trans_expr ( @block_ctxt cx, & ast. expr e) -> result {
970
981
alt ( e. node ) {
971
982
case ( ast. expr_lit ( ?lit, _) ) {
@@ -1022,14 +1033,7 @@ impure fn trans_expr(@block_ctxt cx, &ast.expr e) -> result {
1022
1033
}
1023
1034
1024
1035
case ( ast. expr_call ( ?f, ?args, _) ) {
1025
- auto f_res = trans_lval ( cx, * f) ;
1026
- check ( ! f_res. _1 ) ;
1027
-
1028
- auto args_res = trans_exprs ( f_res. _0 . bcx , args) ;
1029
- auto llargs = vec ( cx. fcx . lltaskptr ) ;
1030
- llargs += args_res. _1 ;
1031
- ret res ( args_res. _0 ,
1032
- args_res. _0 . build . FastCall ( f_res. _0 . val , llargs) ) ;
1036
+ ret trans_call ( cx, * f, args) ;
1033
1037
}
1034
1038
1035
1039
case ( ast. expr_cast ( ?e, _, ?ann) ) {
0 commit comments