Skip to content

Typed constants in reflection extension #12378

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions UPGRADING
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,9 @@ PHP 8.4 UPGRADE NOTES
- Spl:
. The class constants are typed now.

- Reflection:
. The class constants are typed now.

========================================
10. New Global Constants
========================================
Expand Down
143 changes: 41 additions & 102 deletions ext/reflection/php_reflection.stub.php
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,8 @@ public function getAttributes(?string $name = null, int $flags = 0): array {}

class ReflectionFunction extends ReflectionFunctionAbstract
{
/**
* @var int
* @cvalue ZEND_ACC_DEPRECATED
*/
public const IS_DEPRECATED = UNKNOWN;
/** @cvalue ZEND_ACC_DEPRECATED */
public const int IS_DEPRECATED = UNKNOWN;

public function __construct(Closure|string $function) {}

Expand Down Expand Up @@ -170,36 +167,18 @@ public function getExecutingGenerator(): Generator {}

class ReflectionMethod extends ReflectionFunctionAbstract
{
/**
* @var int
* @cvalue ZEND_ACC_STATIC
*/
public const IS_STATIC = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_PUBLIC
*/
public const IS_PUBLIC = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_PROTECTED
*/
public const IS_PROTECTED = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_PRIVATE
*/
public const IS_PRIVATE = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_ABSTRACT
*/
public const IS_ABSTRACT = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_FINAL
*/
public const IS_FINAL = UNKNOWN;
/** @cvalue ZEND_ACC_STATIC */
public const int IS_STATIC = UNKNOWN;
/** @cvalue ZEND_ACC_PUBLIC */
public const int IS_PUBLIC = UNKNOWN;
/** @cvalue ZEND_ACC_PROTECTED */
public const int IS_PROTECTED = UNKNOWN;
/** @cvalue ZEND_ACC_PRIVATE */
public const int IS_PRIVATE = UNKNOWN;
/** @cvalue ZEND_ACC_ABSTRACT */
public const int IS_ABSTRACT = UNKNOWN;
/** @cvalue ZEND_ACC_FINAL */
public const int IS_FINAL = UNKNOWN;

public string $class;

Expand Down Expand Up @@ -258,26 +237,16 @@ public function setAccessible(bool $accessible): void {}
class ReflectionClass implements Reflector
{
/**
* @var int
* @cvalue ZEND_ACC_IMPLICIT_ABSTRACT_CLASS
* @todo deprecate
*/
public const IS_IMPLICIT_ABSTRACT = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_EXPLICIT_ABSTRACT_CLASS
*/
public const IS_EXPLICIT_ABSTRACT = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_FINAL
*/
public const IS_FINAL = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_READONLY_CLASS
*/
public const IS_READONLY = UNKNOWN;
public const int IS_IMPLICIT_ABSTRACT = UNKNOWN;
/** @cvalue ZEND_ACC_EXPLICIT_ABSTRACT_CLASS */
public const int IS_EXPLICIT_ABSTRACT = UNKNOWN;
/** @cvalue ZEND_ACC_FINAL */
public const int IS_FINAL = UNKNOWN;
/** @cvalue ZEND_ACC_READONLY_CLASS */
public const int IS_READONLY = UNKNOWN;

public string $name;

Expand Down Expand Up @@ -455,31 +424,16 @@ public function __construct(object $object) {}
/** @not-serializable */
class ReflectionProperty implements Reflector
{
/**
* @var int
* @cvalue ZEND_ACC_STATIC
*/
public const IS_STATIC = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_READONLY
*/
public const IS_READONLY = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_PUBLIC
*/
public const IS_PUBLIC = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_PROTECTED
*/
public const IS_PROTECTED = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_PRIVATE
*/
public const IS_PRIVATE = UNKNOWN;
/** @cvalue ZEND_ACC_STATIC */
public const int IS_STATIC = UNKNOWN;
/** @cvalue ZEND_ACC_READONLY */
public const int IS_READONLY = UNKNOWN;
/** @cvalue ZEND_ACC_PUBLIC */
public const int IS_PUBLIC = UNKNOWN;
/** @cvalue ZEND_ACC_PROTECTED */
public const int IS_PROTECTED = UNKNOWN;
/** @cvalue ZEND_ACC_PRIVATE */
public const int IS_PRIVATE = UNKNOWN;

public string $name;
public string $class;
Expand Down Expand Up @@ -551,26 +505,14 @@ public function getAttributes(?string $name = null, int $flags = 0): array {}
/** @not-serializable */
class ReflectionClassConstant implements Reflector
{
/**
* @var int
* @cvalue ZEND_ACC_PUBLIC
*/
public const IS_PUBLIC = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_PROTECTED
*/
public const IS_PROTECTED = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_PRIVATE
*/
public const IS_PRIVATE = UNKNOWN;
/**
* @var int
* @cvalue ZEND_ACC_FINAL
*/
public const IS_FINAL = UNKNOWN;
/** @cvalue ZEND_ACC_PUBLIC */
public const int IS_PUBLIC = UNKNOWN;
/** @cvalue ZEND_ACC_PROTECTED */
public const int IS_PROTECTED = UNKNOWN;
/** @cvalue ZEND_ACC_PRIVATE */
public const int IS_PRIVATE = UNKNOWN;
/** @cvalue ZEND_ACC_FINAL */
public const int IS_FINAL = UNKNOWN;

public string $name;
public string $class;
Expand Down Expand Up @@ -819,11 +761,8 @@ private function __construct() {}
/** @not-serializable */
class ReflectionAttribute implements Reflector
{
/**
* @var int
* @cvalue REFLECTION_ATTRIBUTE_IS_INSTANCEOF
*/
public const IS_INSTANCEOF = UNKNOWN;
/** @cvalue REFLECTION_ATTRIBUTE_IS_INSTANCEOF */
public const int IS_INSTANCEOF = UNKNOWN;

public function getName(): string {}
public function getTarget(): int {}
Expand Down
44 changes: 22 additions & 22 deletions ext/reflection/php_reflection_arginfo.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.