Skip to content

Commit 44b6527

Browse files
committed
Back-port #476 to the master branch
1 parent 0372feb commit 44b6527

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

Diff for: src/Proxy/Part/FunctionParameterList.php

+13-7
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,6 @@ public function __construct(ReflectionFunctionAbstract $functionLike, bool $useT
3939
foreach ($reflectionParameters as $reflectionParameter) {
4040
$defaultValue = null;
4141

42-
$isDefaultValueAvailable = $reflectionParameter->isDefaultValueAvailable();
43-
if ($isDefaultValueAvailable) {
44-
$defaultValue = new ValueGenerator($reflectionParameter->getDefaultValue());
45-
} elseif ($reflectionParameter->isOptional() && !$reflectionParameter->isVariadic()) {
46-
$defaultValue = new ValueGenerator(null);
47-
}
48-
4942
$parameterTypeName = null;
5043
if (!$useTypeWidening && $reflectionParameter->hasType()) {
5144
$parameterReflectionType = $reflectionParameter->getType();
@@ -65,6 +58,19 @@ public function __construct(ReflectionFunctionAbstract $functionLike, bool $useT
6558
);
6659
$generatedParameter->setVariadic($reflectionParameter->isVariadic());
6760

61+
if (!$reflectionParameter->isVariadic()) {
62+
$isDefaultValueAvailable = $reflectionParameter->isDefaultValueAvailable();
63+
if ($isDefaultValueAvailable) {
64+
$defaultValue = new ValueGenerator($reflectionParameter->getDefaultValue());
65+
} elseif ($reflectionParameter->isOptional()) {
66+
$defaultValue = new ValueGenerator(null);
67+
}
68+
69+
if ($defaultValue instanceof ValueGenerator) {
70+
$generatedParameter->setDefaultValue($defaultValue);
71+
}
72+
}
73+
6874
$this->generatedParameters[] = $generatedParameter;
6975
}
7076
}

0 commit comments

Comments
 (0)