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..28555e0f 100644 --- a/src/Type/Symfony/ParameterDynamicReturnTypeExtension.php +++ b/src/Type/Symfony/ParameterDynamicReturnTypeExtension.php @@ -159,6 +159,7 @@ 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); @@ -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))) );