From 07a64f68940a762679da72302d2a7a84c4092b78 Mon Sep 17 00:00:00 2001 From: Valentin Udaltsov Date: Tue, 8 Aug 2023 18:08:05 +0300 Subject: [PATCH] Improved Reflection stubs ReflectionParameter::getPosition() is non-negative-int. ReflectionMethod name property is always non-empty-string. ReflectionAttribute::getTarget() returns Attribute::TARGET_* instead of int-mask. Even for attributes of promoted properties (https://3v4l.org/rpM1t). *::getAttributes() always returns a list (https://3v4l.org/LYAMb). --- dictionaries/CallMap.php | 2 +- stubs/Php80.phpstub | 2 +- stubs/Reflection.phpstub | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dictionaries/CallMap.php b/dictionaries/CallMap.php index 191c7a6a5..37adcdea9 100644 --- a/dictionaries/CallMap.php +++ b/dictionaries/CallMap.php @@ -10631,7 +10631,7 @@ return [ 'ReflectionParameter::getDefaultValue' => ['mixed'], 'ReflectionParameter::getDefaultValueConstantName' => ['?string'], 'ReflectionParameter::getName' => ['string'], -'ReflectionParameter::getPosition' => ['int'], +'ReflectionParameter::getPosition' => ['int<0, max>'], 'ReflectionParameter::getType' => ['?ReflectionType'], 'ReflectionParameter::hasType' => ['bool'], 'ReflectionParameter::isArray' => ['bool'], diff --git a/stubs/Php80.phpstub b/stubs/Php80.phpstub index 2f2d5bf0b..0e1404b74 100644 --- a/stubs/Php80.phpstub +++ b/stubs/Php80.phpstub @@ -28,7 +28,7 @@ class ReflectionAttribute /** * @psalm-pure - * @return int-mask-of + * @return Attribute::TARGET_* */ public function getTarget() : int { diff --git a/stubs/Reflection.phpstub b/stubs/Reflection.phpstub index 3e86431e5..68bc4ffd0 100644 --- a/stubs/Reflection.phpstub +++ b/stubs/Reflection.phpstub @@ -416,7 +416,7 @@ abstract class ReflectionFunctionAbstract implements Reflector * @since 8.0 * @template TClass as object * @param class-string|null $name - * @return ($name is null ? array> : array>) + * @return ($name is null ? list> : list>) */ public function getAttributes(?string $name = null, int $flags = 0): array {} } @@ -463,7 +463,7 @@ class ReflectionProperty implements Reflector * @since 8.0 * @template TClass as object * @param class-string|null $name - * @return ($name is null ? array> : array>) + * @return ($name is null ? list> : list>) */ public function getAttributes(?string $name = null, int $flags = 0): array {} @@ -540,7 +540,7 @@ class ReflectionProperty implements Reflector class ReflectionMethod extends ReflectionFunctionAbstract { /** - * @var string + * @var non-empty-string * @readonly */ public $name; @@ -599,7 +599,7 @@ class ReflectionClassConstant implements Reflector * @since 8.0 * @template TClass as object * @param class-string|null $name - * @return ($name is null ? array> : array>) + * @return ($name is null ? list> : list>) */ public function getAttributes(?string $name = null, int $flags = 0): array {} @@ -635,7 +635,7 @@ class ReflectionParameter implements Reflector { * @since 8.0 * @template TClass as object * @param class-string|null $name - * @return ($name is null ? array> : array>) + * @return ($name is null ? list> : list>) */ public function getAttributes(?string $name = null, int $flags = 0): array {}