mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user