Skip to content

Commit 80598eb

Browse files
committed
Potential fix
1 parent 2707db1 commit 80598eb

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

rules/Symfony73/Rector/Class_/InvokableCommandInputAttributeRector.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use PhpParser\Node\Expr\Variable;
1010
use PhpParser\Node\Identifier;
1111
use PhpParser\Node\Name;
12+
use PhpParser\Node\Param;
1213
use PhpParser\Node\Stmt\Class_;
1314
use PhpParser\Node\Stmt\ClassMethod;
1415
use PhpParser\Node\Stmt\Expression;
@@ -167,7 +168,13 @@ public function refactor(Node $node): ?Class_
167168
$invokeParams = [];
168169
}
169170

170-
$executeClassMethod->params = array_merge($invokeParams, [$executeClassMethod->params[1]]);
171+
$executeClassMethodParams = array_merge($invokeParams, [$executeClassMethod->params[1]]);
172+
173+
// Ensure that optional parameters are listed last in the argument list
174+
$executeClassMethod->params = array_merge(
175+
array_filter($executeClassMethodParams, fn(Param $param) => is_null($param->default)),
176+
array_filter($executeClassMethodParams, fn(Param $param) => !is_null($param->default)),
177+
);
171178

172179
// 6. remove parent class
173180
$node->extends = null;

0 commit comments

Comments
 (0)