fix splat without assignment; fix #2781

The parser generates NODE_NIL for tSTAR without argument in masgns. The
codegen didn't handle that.
This commit is contained in:
cremno
2015-05-07 16:58:43 +02:00
parent 2fe556d9c0
commit 2aa59393ba
2 changed files with 9 additions and 0 deletions
+3
View File
@@ -964,6 +964,9 @@ gen_assignment(codegen_scope *s, node *tree, int sp, int val)
genop_peep(s, MKOP_AB(OP_MOVE, cursp(), sp), val);
}
break;
/* splat without assignment */
case NODE_NIL:
break;
default:
#ifdef ENABLE_STDIO
+6
View File
@@ -213,6 +213,12 @@ assert('Splat and multiple assignment in for') do
assert_equal 7, f
end
assert('Splat without assignment') do
* = [0]
a, * = [1, 2]
assert_equal 1, a
end
assert('Return values of case statements') do
a = [] << case 1
when 3 then 2