Skip to content

Commit 60c6384

Browse files
committed
Fixing variadic optional functions generation
1 parent f014773 commit 60c6384

File tree

5 files changed

+19
-11
lines changed

5 files changed

+19
-11
lines changed

generated/array.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@
6767
function array_multisort(array &$array1, $array1_sort_order = SORT_ASC, $array1_sort_flags = SORT_REGULAR, ...$params): void
6868
{
6969
error_clear_last();
70-
if ($params !== null) {
71-
$result = \array_multisort($array1, $array1_sort_order, $array1_sort_flags, $params);
70+
if ($params !== []) {
71+
$result = \array_multisort($array1, $array1_sort_order, $array1_sort_flags, ...$params);
7272
} else {
7373
$result = \array_multisort($array1, $array1_sort_order, $array1_sort_flags);
7474
}

generated/funchand.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ function func_get_arg(int $arg_num)
6262
function register_tick_function(callable $function, $arg = null, ...$params): void
6363
{
6464
error_clear_last();
65-
if ($params !== null) {
66-
$result = \register_tick_function($function, $arg, $params);
65+
if ($params !== []) {
66+
$result = \register_tick_function($function, $arg, ...$params);
6767
} elseif ($arg !== null) {
6868
$result = \register_tick_function($function, $arg);
6969
} else {

generated/session.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ function session_regenerate_id(bool $delete_old_session = false): void
124124
function session_register($name, ...$params): void
125125
{
126126
error_clear_last();
127-
if ($params !== null) {
128-
$result = \session_register($name, $params);
127+
if ($params !== []) {
128+
$result = \session_register($name, ...$params);
129129
} else {
130130
$result = \session_register($name);
131131
}

generated/strings.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -439,8 +439,8 @@ function metaphone(string $str, int $phonemes = 0): string
439439
function sprintf(string $format, $args = null, ...$params): string
440440
{
441441
error_clear_last();
442-
if ($params !== null) {
443-
$result = \sprintf($format, $args, $params);
442+
if ($params !== []) {
443+
$result = \sprintf($format, $args, ...$params);
444444
} elseif ($args !== null) {
445445
$result = \sprintf($format, $args);
446446
} else {

generator/src/WritePhpFunction.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,12 @@ private function writePhpFunction(): string
7171
} else {
7272
$phpFunction .= ' ';
7373
}
74-
$defaultValue = $lastParameter->getDefaultValue();
75-
$defaultValueToString = ($defaultValue === null) ? 'null' : $defaultValue;
74+
if ($lastParameter->isVariadic()) {
75+
$defaultValueToString = '[]';
76+
} else {
77+
$defaultValue = $lastParameter->getDefaultValue();
78+
$defaultValueToString = ($defaultValue === null) ? 'null' : $defaultValue;
79+
}
7680
$phpFunction .= 'if ($'.$lastParameter->getParameter().' !== '.$defaultValueToString.') {'."\n";
7781
$phpFunction .= ' $result = '.$this->printFunctionCall($method)."\n";
7882
$phpFunction .= ' }';
@@ -161,7 +165,11 @@ private function printFunctionCall(Method $function): string
161165
{
162166
$functionCall = '\\'.$function->getFunctionName().'(';
163167
$functionCall .= implode(', ', \array_map(function (Parameter $parameter) {
164-
return '$'.$parameter->getParameter();
168+
$str = '';
169+
if ($parameter->isVariadic()) {
170+
$str = '...';
171+
}
172+
return $str.'$'.$parameter->getParameter();
165173
}, $function->getFunctionParam()));
166174
$functionCall .= ');';
167175
return $functionCall;

0 commit comments

Comments
 (0)