diff --git a/src/Analyser/ArgumentsNormalizer.php b/src/Analyser/ArgumentsNormalizer.php index 4da74a681e..98deefabe1 100644 --- a/src/Analyser/ArgumentsNormalizer.php +++ b/src/Analyser/ArgumentsNormalizer.php @@ -3,7 +3,6 @@ namespace PHPStan\Analyser; use PhpParser\Node\Arg; -use PhpParser\Node\Expr\CallLike; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\New_; @@ -85,7 +84,7 @@ public static function reorderFuncArguments( FuncCall $functionCall, ): ?FuncCall { - $reorderedArgs = self::reorderArgs($parametersAcceptor, $functionCall); + $reorderedArgs = self::reorderArgs($parametersAcceptor, $functionCall->getArgs()); if ($reorderedArgs === null) { return null; @@ -103,7 +102,7 @@ public static function reorderMethodArguments( MethodCall $methodCall, ): ?MethodCall { - $reorderedArgs = self::reorderArgs($parametersAcceptor, $methodCall); + $reorderedArgs = self::reorderArgs($parametersAcceptor, $methodCall->getArgs()); if ($reorderedArgs === null) { return null; @@ -122,7 +121,7 @@ public static function reorderStaticCallArguments( StaticCall $staticCall, ): ?StaticCall { - $reorderedArgs = self::reorderArgs($parametersAcceptor, $staticCall); + $reorderedArgs = self::reorderArgs($parametersAcceptor, $staticCall->getArgs()); if ($reorderedArgs === null) { return null; @@ -141,7 +140,7 @@ public static function reorderNewArguments( New_ $new, ): ?New_ { - $reorderedArgs = self::reorderArgs($parametersAcceptor, $new); + $reorderedArgs = self::reorderArgs($parametersAcceptor, $new->getArgs()); if ($reorderedArgs === null) { return null; @@ -155,17 +154,17 @@ public static function reorderNewArguments( } /** + * @param Arg[] $callArgs * @return ?array */ - private static function reorderArgs(ParametersAcceptor $parametersAcceptor, CallLike $callLike): ?array + private static function reorderArgs(ParametersAcceptor $parametersAcceptor, array $callArgs): ?array { - $signatureParameters = $parametersAcceptor->getParameters(); - $callArgs = $callLike->getArgs(); - if (count($callArgs) === 0) { return []; } + $signatureParameters = $parametersAcceptor->getParameters(); + $hasNamedArgs = false; foreach ($callArgs as $arg) { if ($arg->name !== null) {