Skip to content

Commit

Permalink
Improved Reflection stubs
Browse files Browse the repository at this point in the history
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).
  • Loading branch information
vudaltsov committed Feb 6, 2024
1 parent 4a5dbca commit 07a64f6
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 7 deletions.
2 changes: 1 addition & 1 deletion dictionaries/CallMap.php
Original file line number Diff line number Diff line change
Expand Up @@ -10631,7 +10631,7 @@
'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'],
Expand Down
2 changes: 1 addition & 1 deletion stubs/Php80.phpstub
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class ReflectionAttribute

/**
* @psalm-pure
* @return int-mask-of<Attribute::TARGET_*>
* @return Attribute::TARGET_*
*/
public function getTarget() : int
{
Expand Down
10 changes: 5 additions & 5 deletions stubs/Reflection.phpstub
Original file line number Diff line number Diff line change
Expand Up @@ -416,7 +416,7 @@ abstract class ReflectionFunctionAbstract implements Reflector
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
* @return ($name is null ? array<ReflectionAttribute<object>> : array<ReflectionAttribute<TClass>>)
* @return ($name is null ? list<ReflectionAttribute<object>> : list<ReflectionAttribute<TClass>>)
*/
public function getAttributes(?string $name = null, int $flags = 0): array {}
}
Expand Down Expand Up @@ -463,7 +463,7 @@ class ReflectionProperty implements Reflector
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
* @return ($name is null ? array<ReflectionAttribute<object>> : array<ReflectionAttribute<TClass>>)
* @return ($name is null ? list<ReflectionAttribute<object>> : list<ReflectionAttribute<TClass>>)
*/
public function getAttributes(?string $name = null, int $flags = 0): array {}

Expand Down Expand Up @@ -540,7 +540,7 @@ class ReflectionProperty implements Reflector
class ReflectionMethod extends ReflectionFunctionAbstract
{
/**
* @var string
* @var non-empty-string
* @readonly
*/
public $name;
Expand Down Expand Up @@ -599,7 +599,7 @@ class ReflectionClassConstant implements Reflector
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
* @return ($name is null ? array<ReflectionAttribute<object>> : array<ReflectionAttribute<TClass>>)
* @return ($name is null ? list<ReflectionAttribute<object>> : list<ReflectionAttribute<TClass>>)
*/
public function getAttributes(?string $name = null, int $flags = 0): array {}

Expand Down Expand Up @@ -635,7 +635,7 @@ class ReflectionParameter implements Reflector {
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
* @return ($name is null ? array<ReflectionAttribute<object>> : array<ReflectionAttribute<TClass>>)
* @return ($name is null ? list<ReflectionAttribute<object>> : list<ReflectionAttribute<TClass>>)
*/
public function getAttributes(?string $name = null, int $flags = 0): array {}

Expand Down

0 comments on commit 07a64f6

Please sign in to comment.