diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-10-21 20:45:35 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-10-21 20:45:35 +0000 |
commit | 3337185ed683bfc82f86641e0627021952cefa8b (patch) | |
tree | 2fe4e0593d2edeab36292edbce28d7b32f69911c /parse.y | |
parent | fa127bbb189a88921870ccd922744a7aa14aa009 (diff) | |
download | ruby-3337185ed683bfc82f86641e0627021952cefa8b.tar.gz |
* parse.y (arg_concat_gen): concat target node should be NODE_ARRAY.
[ruby-core:19413]
* bootstraptest/test_method.rb: add tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -2443,8 +2443,7 @@ args : arg_value { /*%%%*/ NODE *n1; - if (nd_type($4) == NODE_ARRAY && - (n1 = splat_array($1)) != 0) { + if ((nd_type($4) == NODE_ARRAY) && (n1 = splat_array($1)) != 0) { $$ = list_concat(n1, $4); } else { @@ -8131,7 +8130,8 @@ arg_concat_gen(struct parser_params *parser, NODE *node1, NODE *node2) nd_set_type(node1, NODE_ARGSCAT); return node1; case NODE_ARGSCAT: - if (nd_type(node2) != NODE_ARRAY) break; + if (nd_type(node2) != NODE_ARRAY || + nd_type(node1->nd_body) != NODE_ARRAY) break; node1->nd_body = list_concat(node1->nd_body, node2); return node1; } |