Skip to content

Commit cb8ad3d

Browse files
committed
Extractor: supports promoted parameters [Closes #103]
1 parent ff95c6e commit cb8ad3d

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/PhpGenerator/Extractor.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,10 @@ private function setupFunction(GlobalFunction|Method $function, Node\FunctionLik
390390
$function->setReturnReference($node->returnsByRef());
391391
$function->setReturnType($node->getReturnType() ? $this->toPhp($node->getReturnType()) : null);
392392
foreach ($node->getParams() as $item) {
393-
$param = $function->addParameter($item->var->name);
393+
$visibility = $this->toVisibility($item->flags);
394+
$param = $visibility
395+
? ($function->addPromotedParameter($item->var->name))->setVisibility($visibility)
396+
: $function->addParameter($item->var->name);
394397
$param->setType($item->type ? $this->toPhp($item->type) : null);
395398
$param->setReference($item->byRef);
396399
$function->setVariadic($item->variadic);

tests/PhpGenerator/expected/Extractor.classes.80.expect

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ namespace Abc;
66

77
class Class8
88
{
9-
public function __construct($a, int|string $b = 10, $c = null)
10-
{
9+
public function __construct(
10+
public $a,
11+
private int|string $b = 10,
12+
$c = null,
13+
) {
1114
}
1215
}
1316

0 commit comments

Comments
 (0)