From 7f391e6c7278c83f8e54bdf2ddcbe466e290a93b Mon Sep 17 00:00:00 2001 From: Naoki Ikeguchi Date: Mon, 20 Feb 2023 12:21:37 +0900 Subject: [PATCH 1/2] fix: Fix PHPStan errors on level 9 --- src/Symfony/Configuration.php | 11 +++++++++-- .../Symfony/ParameterDynamicReturnTypeExtension.php | 3 +++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Configuration.php b/src/Symfony/Configuration.php index 4c1f1a31..dabaa09f 100644 --- a/src/Symfony/Configuration.php +++ b/src/Symfony/Configuration.php @@ -2,14 +2,21 @@ namespace PHPStan\Symfony; +/** + * @phpstan-type ParametersArray array{ + * containerXmlPath?: string, container_xml_path?: string, + * constantHassers?: bool, constant_hassers?: bool, + * consoleApplicationLoader?: string, console_application_loader?: string, + * } + */ final class Configuration { - /** @var array */ + /** @var ParametersArray */ private $parameters; /** - * @param array $parameters + * @phpstan-param ParametersArray $parameters */ public function __construct(array $parameters) { diff --git a/src/Type/Symfony/ParameterDynamicReturnTypeExtension.php b/src/Type/Symfony/ParameterDynamicReturnTypeExtension.php index b160ddc8..12ba5184 100644 --- a/src/Type/Symfony/ParameterDynamicReturnTypeExtension.php +++ b/src/Type/Symfony/ParameterDynamicReturnTypeExtension.php @@ -163,6 +163,7 @@ private function generalizeTypeFromValue(Scope $scope, $value): Type /** @var ConstantStringType $keyType */ $keyType = $scope->getTypeFromValue($key); $keyTypes[] = $keyType; + /** @var array|bool|float|int|string $element */ $valueTypes[] = $this->generalizeTypeFromValue($scope, $element); } @@ -171,9 +172,11 @@ private function generalizeTypeFromValue(Scope $scope, $value): Type return new ArrayType( TypeCombinator::union(...array_map(function ($item) use ($scope): Type { + /** @var array|bool|float|int|string $item */ return $this->generalizeTypeFromValue($scope, $item); }, array_keys($value))), TypeCombinator::union(...array_map(function ($item) use ($scope): Type { + /** @var array|bool|float|int|string $item */ return $this->generalizeTypeFromValue($scope, $item); }, array_values($value))) ); From 2c7c72baa0793da44544ccb36ed18005221457e7 Mon Sep 17 00:00:00 2001 From: Naoki Ikeguchi Date: Mon, 20 Feb 2023 12:29:44 +0900 Subject: [PATCH 2/2] style: Fix CS --- src/Type/Symfony/ParameterDynamicReturnTypeExtension.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Type/Symfony/ParameterDynamicReturnTypeExtension.php b/src/Type/Symfony/ParameterDynamicReturnTypeExtension.php index 12ba5184..28555e0f 100644 --- a/src/Type/Symfony/ParameterDynamicReturnTypeExtension.php +++ b/src/Type/Symfony/ParameterDynamicReturnTypeExtension.php @@ -159,11 +159,11 @@ private function generalizeTypeFromValue(Scope $scope, $value): Type if ($hasOnlyStringKey) { $keyTypes = []; $valueTypes = []; + /** @var array|bool|float|int|string $element */ foreach ($value as $key => $element) { /** @var ConstantStringType $keyType */ $keyType = $scope->getTypeFromValue($key); $keyTypes[] = $keyType; - /** @var array|bool|float|int|string $element */ $valueTypes[] = $this->generalizeTypeFromValue($scope, $element); }