summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-02-12 16:27:22 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-02-12 16:27:22 +0000
commit552fa153f0d370973580613cb9fddaec4af5966a (patch)
tree92388e3d51ae9826d909aa3b81906a74d8e8d360 /parse.y
parent813fcf768e6acbccd4d8afe941e6c35836ffbc2c (diff)
* parse.y (stmt, arg): concat opt_call_args only if non-null.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y14
1 files changed, 6 insertions, 8 deletions
diff --git a/parse.y b/parse.y
index 50eaa5f7c7..2b6e06bb2d 100644
--- a/parse.y
+++ b/parse.y
@@ -1027,11 +1027,10 @@ stmt : keyword_alias fitem {lex_state = EXPR_FNAME;} fitem
| primary_value '[' opt_call_args rbracket tOP_ASGN command_call
{
/*%%%*/
- NODE *args;
+ NODE *args = $6;
- value_expr($6);
- if (!$3) $3 = NEW_ZARRAY();
- args = arg_concat($6, $3);
+ value_expr(args);
+ if ($3) args = arg_concat(args, $3);
if ($5 == tOROP) {
$5 = 0;
}
@@ -1829,11 +1828,10 @@ arg : lhs '=' arg
| primary_value '[' opt_call_args rbracket tOP_ASGN arg
{
/*%%%*/
- NODE *args;
+ NODE *args = $6;
- value_expr($6);
- if (!$3) $3 = NEW_ZARRAY();
- args = arg_concat($6, $3);
+ value_expr(args);
+ if ($3) args = arg_concat(args, $3);
if ($5 == tOROP) {
$5 = 0;
}