fix(compiler): evaluate trailing empty switch cases (#90)
parent
6aae5f76d2
commit
42846579b7
2 changed files with 56 additions and 8 deletions
@ -0,0 +1,49 @@ |
|||||||
|
--TEST-- |
||||||
|
Switch evaluates and matches a trailing empty case |
||||||
|
--FILE-- |
||||||
|
<?php |
||||||
|
function mark(string $value): string |
||||||
|
{ |
||||||
|
echo "evaluated:$value\n"; |
||||||
|
return $value; |
||||||
|
} |
||||||
|
|
||||||
|
function main(): void |
||||||
|
{ |
||||||
|
switch ('subject') { |
||||||
|
default: |
||||||
|
echo "default\n"; |
||||||
|
break; |
||||||
|
case mark('other'): |
||||||
|
} |
||||||
|
|
||||||
|
switch ('subject') { |
||||||
|
default: |
||||||
|
echo "default\n"; |
||||||
|
break; |
||||||
|
case mark('subject'): |
||||||
|
} |
||||||
|
|
||||||
|
switch ('subject') { |
||||||
|
default: |
||||||
|
echo "unexpected-default\n"; |
||||||
|
break; |
||||||
|
case mark('first-miss'): |
||||||
|
case mark('subject'): |
||||||
|
} |
||||||
|
|
||||||
|
switch ('subject') { |
||||||
|
case mark('default-miss'): |
||||||
|
echo "unexpected-case\n"; |
||||||
|
break; |
||||||
|
default: |
||||||
|
} |
||||||
|
} |
||||||
|
?> |
||||||
|
--EXPECT-- |
||||||
|
evaluated:other |
||||||
|
default |
||||||
|
evaluated:subject |
||||||
|
evaluated:first-miss |
||||||
|
evaluated:subject |
||||||
|
evaluated:default-miss |
||||||
Loading…
Reference in new issue