diff options
author | Stephen Dolan <mu@netsoc.tcd.ie> | 2012-12-04 00:39:21 +0000 |
---|---|---|
committer | Stephen Dolan <mu@netsoc.tcd.ie> | 2012-12-04 00:39:21 +0000 |
commit | 616e8f9924ad9df22acf58c79c5d49ef6030fcb8 (patch) | |
tree | 05f9754c3b927e419d183fc012f0d29a0d7fed3a /parser.y | |
parent | a88d53d2fda9a755c9c972a09a1206d54ca0d8b2 (diff) |
Refactor function argument passing into what it always should have been.
Most visible change is that error messages when a function is called
with the wrong number of arguments are much better.
Diffstat (limited to 'parser.y')
-rw-r--r-- | parser.y | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -299,13 +299,14 @@ Term { FuncDef: "def" IDENT ':' Exp ';' { - $$ = gen_function(jv_string_value($2), $4); + $$ = gen_function(jv_string_value($2), gen_noop(), $4); jv_free($2); } | "def" IDENT '(' IDENT ')' ':' Exp ';' { - block body = block_bind(gen_op_block_unbound(CLOSURE_PARAM, jv_string_value($4)), $7, OP_IS_CALL_PSEUDO); - $$ = gen_function(jv_string_value($2), body); + $$ = gen_function(jv_string_value($2), + gen_op_block_unbound(CLOSURE_PARAM, jv_string_value($4)), + $7); jv_free($2); jv_free($4); } |