mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #2730 from kou/fix-no-expression-case
Fix a bug that no expression case doesn't return valid value
This commit is contained in:
+1
-1
@@ -1458,7 +1458,7 @@ codegen(codegen_scope *s, node *tree, int val)
|
||||
int pos = cursp();
|
||||
genop(s, MKOP_A(OP_LOADNIL, cursp()));
|
||||
if (pos3) dispatch_linked(s, pos3);
|
||||
pop();
|
||||
if (head) pop();
|
||||
genop(s, MKOP_AB(OP_MOVE, cursp(), pos));
|
||||
push();
|
||||
}
|
||||
|
||||
@@ -255,6 +255,16 @@ assert('Return values of if and case statements') do
|
||||
assert_equal 1, true_clause_value
|
||||
end
|
||||
|
||||
assert('Return values of no expression case statement') do
|
||||
when_value =
|
||||
case
|
||||
when true
|
||||
1
|
||||
end
|
||||
|
||||
assert_equal 1, when_value
|
||||
end
|
||||
|
||||
assert('splat in case statement') do
|
||||
values = [3,5,1,7,8]
|
||||
testa = [1,2,7]
|
||||
|
||||
Reference in New Issue
Block a user