From e8d8a5fe69fad5a9682ce277c8d4ac3d9d9acee2 Mon Sep 17 00:00:00 2001 From: Jorg Adam Sowa Date: Sat, 28 Oct 2023 09:47:19 +0200 Subject: [PATCH] Typed constants in reflection extension (#12378) --- UPGRADING | 3 + ext/reflection/php_reflection.stub.php | 143 +++++++----------------- ext/reflection/php_reflection_arginfo.h | 44 ++++---- 3 files changed, 66 insertions(+), 124 deletions(-) diff --git a/UPGRADING b/UPGRADING index ecead65162e..35c5f3f47d1 100644 --- a/UPGRADING +++ b/UPGRADING @@ -139,6 +139,9 @@ PHP 8.4 UPGRADE NOTES - Spl: . The class constants are typed now. +- Reflection: + . The class constants are typed now. + ======================================== 10. New Global Constants ======================================== diff --git a/ext/reflection/php_reflection.stub.php b/ext/reflection/php_reflection.stub.php index ff9952ca145..06b58358101 100644 --- a/ext/reflection/php_reflection.stub.php +++ b/ext/reflection/php_reflection.stub.php @@ -116,11 +116,8 @@ abstract class ReflectionFunctionAbstract implements Reflector 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) {} @@ -170,36 +167,18 @@ final class ReflectionGenerator 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; @@ -258,26 +237,16 @@ class ReflectionMethod extends ReflectionFunctionAbstract 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; @@ -455,31 +424,16 @@ class ReflectionObject extends ReflectionClass /** @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; @@ -551,26 +505,14 @@ class ReflectionProperty implements Reflector /** @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; @@ -819,11 +761,8 @@ final class ReflectionReference /** @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 {} diff --git a/ext/reflection/php_reflection_arginfo.h b/ext/reflection/php_reflection_arginfo.h index 5d643309d33..76831286941 100644 --- a/ext/reflection/php_reflection_arginfo.h +++ b/ext/reflection/php_reflection_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 5781d892d122912b19d530a72f9023cced814064 */ + * Stub hash: 11fcaa654fc0442e8338f6849b91aa2970b211b9 */ ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_Reflection_getModifierNames, 0, 1, IS_ARRAY, 0) ZEND_ARG_TYPE_INFO(0, modifiers, IS_LONG, 0) @@ -1268,7 +1268,7 @@ static zend_class_entry *register_class_ReflectionFunction(zend_class_entry *cla zval const_IS_DEPRECATED_value; ZVAL_LONG(&const_IS_DEPRECATED_value, ZEND_ACC_DEPRECATED); zend_string *const_IS_DEPRECATED_name = zend_string_init_interned("IS_DEPRECATED", sizeof("IS_DEPRECATED") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_DEPRECATED_name, &const_IS_DEPRECATED_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_DEPRECATED_name, &const_IS_DEPRECATED_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_DEPRECATED_name); return class_entry; @@ -1295,37 +1295,37 @@ static zend_class_entry *register_class_ReflectionMethod(zend_class_entry *class zval const_IS_STATIC_value; ZVAL_LONG(&const_IS_STATIC_value, ZEND_ACC_STATIC); zend_string *const_IS_STATIC_name = zend_string_init_interned("IS_STATIC", sizeof("IS_STATIC") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_STATIC_name, &const_IS_STATIC_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_STATIC_name, &const_IS_STATIC_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_STATIC_name); zval const_IS_PUBLIC_value; ZVAL_LONG(&const_IS_PUBLIC_value, ZEND_ACC_PUBLIC); zend_string *const_IS_PUBLIC_name = zend_string_init_interned("IS_PUBLIC", sizeof("IS_PUBLIC") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_PUBLIC_name, &const_IS_PUBLIC_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_PUBLIC_name, &const_IS_PUBLIC_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_PUBLIC_name); zval const_IS_PROTECTED_value; ZVAL_LONG(&const_IS_PROTECTED_value, ZEND_ACC_PROTECTED); zend_string *const_IS_PROTECTED_name = zend_string_init_interned("IS_PROTECTED", sizeof("IS_PROTECTED") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_PROTECTED_name, &const_IS_PROTECTED_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_PROTECTED_name, &const_IS_PROTECTED_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_PROTECTED_name); zval const_IS_PRIVATE_value; ZVAL_LONG(&const_IS_PRIVATE_value, ZEND_ACC_PRIVATE); zend_string *const_IS_PRIVATE_name = zend_string_init_interned("IS_PRIVATE", sizeof("IS_PRIVATE") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_PRIVATE_name, &const_IS_PRIVATE_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_PRIVATE_name, &const_IS_PRIVATE_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_PRIVATE_name); zval const_IS_ABSTRACT_value; ZVAL_LONG(&const_IS_ABSTRACT_value, ZEND_ACC_ABSTRACT); zend_string *const_IS_ABSTRACT_name = zend_string_init_interned("IS_ABSTRACT", sizeof("IS_ABSTRACT") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_ABSTRACT_name, &const_IS_ABSTRACT_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_ABSTRACT_name, &const_IS_ABSTRACT_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_ABSTRACT_name); zval const_IS_FINAL_value; ZVAL_LONG(&const_IS_FINAL_value, ZEND_ACC_FINAL); zend_string *const_IS_FINAL_name = zend_string_init_interned("IS_FINAL", sizeof("IS_FINAL") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_FINAL_name, &const_IS_FINAL_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_FINAL_name, &const_IS_FINAL_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_FINAL_name); zval property_class_default_value; @@ -1349,25 +1349,25 @@ static zend_class_entry *register_class_ReflectionClass(zend_class_entry *class_ zval const_IS_IMPLICIT_ABSTRACT_value; ZVAL_LONG(&const_IS_IMPLICIT_ABSTRACT_value, ZEND_ACC_IMPLICIT_ABSTRACT_CLASS); zend_string *const_IS_IMPLICIT_ABSTRACT_name = zend_string_init_interned("IS_IMPLICIT_ABSTRACT", sizeof("IS_IMPLICIT_ABSTRACT") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_IMPLICIT_ABSTRACT_name, &const_IS_IMPLICIT_ABSTRACT_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_IMPLICIT_ABSTRACT_name, &const_IS_IMPLICIT_ABSTRACT_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_IMPLICIT_ABSTRACT_name); zval const_IS_EXPLICIT_ABSTRACT_value; ZVAL_LONG(&const_IS_EXPLICIT_ABSTRACT_value, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); zend_string *const_IS_EXPLICIT_ABSTRACT_name = zend_string_init_interned("IS_EXPLICIT_ABSTRACT", sizeof("IS_EXPLICIT_ABSTRACT") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_EXPLICIT_ABSTRACT_name, &const_IS_EXPLICIT_ABSTRACT_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_EXPLICIT_ABSTRACT_name, &const_IS_EXPLICIT_ABSTRACT_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_EXPLICIT_ABSTRACT_name); zval const_IS_FINAL_value; ZVAL_LONG(&const_IS_FINAL_value, ZEND_ACC_FINAL); zend_string *const_IS_FINAL_name = zend_string_init_interned("IS_FINAL", sizeof("IS_FINAL") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_FINAL_name, &const_IS_FINAL_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_FINAL_name, &const_IS_FINAL_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_FINAL_name); zval const_IS_READONLY_value; ZVAL_LONG(&const_IS_READONLY_value, ZEND_ACC_READONLY_CLASS); zend_string *const_IS_READONLY_name = zend_string_init_interned("IS_READONLY", sizeof("IS_READONLY") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_READONLY_name, &const_IS_READONLY_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_READONLY_name, &const_IS_READONLY_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_READONLY_name); zval property_name_default_value; @@ -1401,31 +1401,31 @@ static zend_class_entry *register_class_ReflectionProperty(zend_class_entry *cla zval const_IS_STATIC_value; ZVAL_LONG(&const_IS_STATIC_value, ZEND_ACC_STATIC); zend_string *const_IS_STATIC_name = zend_string_init_interned("IS_STATIC", sizeof("IS_STATIC") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_STATIC_name, &const_IS_STATIC_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_STATIC_name, &const_IS_STATIC_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_STATIC_name); zval const_IS_READONLY_value; ZVAL_LONG(&const_IS_READONLY_value, ZEND_ACC_READONLY); zend_string *const_IS_READONLY_name = zend_string_init_interned("IS_READONLY", sizeof("IS_READONLY") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_READONLY_name, &const_IS_READONLY_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_READONLY_name, &const_IS_READONLY_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_READONLY_name); zval const_IS_PUBLIC_value; ZVAL_LONG(&const_IS_PUBLIC_value, ZEND_ACC_PUBLIC); zend_string *const_IS_PUBLIC_name = zend_string_init_interned("IS_PUBLIC", sizeof("IS_PUBLIC") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_PUBLIC_name, &const_IS_PUBLIC_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_PUBLIC_name, &const_IS_PUBLIC_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_PUBLIC_name); zval const_IS_PROTECTED_value; ZVAL_LONG(&const_IS_PROTECTED_value, ZEND_ACC_PROTECTED); zend_string *const_IS_PROTECTED_name = zend_string_init_interned("IS_PROTECTED", sizeof("IS_PROTECTED") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_PROTECTED_name, &const_IS_PROTECTED_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_PROTECTED_name, &const_IS_PROTECTED_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_PROTECTED_name); zval const_IS_PRIVATE_value; ZVAL_LONG(&const_IS_PRIVATE_value, ZEND_ACC_PRIVATE); zend_string *const_IS_PRIVATE_name = zend_string_init_interned("IS_PRIVATE", sizeof("IS_PRIVATE") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_PRIVATE_name, &const_IS_PRIVATE_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_PRIVATE_name, &const_IS_PRIVATE_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_PRIVATE_name); zval property_name_default_value; @@ -1455,25 +1455,25 @@ static zend_class_entry *register_class_ReflectionClassConstant(zend_class_entry zval const_IS_PUBLIC_value; ZVAL_LONG(&const_IS_PUBLIC_value, ZEND_ACC_PUBLIC); zend_string *const_IS_PUBLIC_name = zend_string_init_interned("IS_PUBLIC", sizeof("IS_PUBLIC") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_PUBLIC_name, &const_IS_PUBLIC_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_PUBLIC_name, &const_IS_PUBLIC_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_PUBLIC_name); zval const_IS_PROTECTED_value; ZVAL_LONG(&const_IS_PROTECTED_value, ZEND_ACC_PROTECTED); zend_string *const_IS_PROTECTED_name = zend_string_init_interned("IS_PROTECTED", sizeof("IS_PROTECTED") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_PROTECTED_name, &const_IS_PROTECTED_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_PROTECTED_name, &const_IS_PROTECTED_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_PROTECTED_name); zval const_IS_PRIVATE_value; ZVAL_LONG(&const_IS_PRIVATE_value, ZEND_ACC_PRIVATE); zend_string *const_IS_PRIVATE_name = zend_string_init_interned("IS_PRIVATE", sizeof("IS_PRIVATE") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_PRIVATE_name, &const_IS_PRIVATE_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_PRIVATE_name, &const_IS_PRIVATE_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_PRIVATE_name); zval const_IS_FINAL_value; ZVAL_LONG(&const_IS_FINAL_value, ZEND_ACC_FINAL); zend_string *const_IS_FINAL_name = zend_string_init_interned("IS_FINAL", sizeof("IS_FINAL") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_FINAL_name, &const_IS_FINAL_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_FINAL_name, &const_IS_FINAL_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_FINAL_name); zval property_name_default_value; @@ -1610,7 +1610,7 @@ static zend_class_entry *register_class_ReflectionAttribute(zend_class_entry *cl zval const_IS_INSTANCEOF_value; ZVAL_LONG(&const_IS_INSTANCEOF_value, REFLECTION_ATTRIBUTE_IS_INSTANCEOF); zend_string *const_IS_INSTANCEOF_name = zend_string_init_interned("IS_INSTANCEOF", sizeof("IS_INSTANCEOF") - 1, 1); - zend_declare_class_constant_ex(class_entry, const_IS_INSTANCEOF_name, &const_IS_INSTANCEOF_value, ZEND_ACC_PUBLIC, NULL); + zend_declare_typed_class_constant(class_entry, const_IS_INSTANCEOF_name, &const_IS_INSTANCEOF_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_IS_INSTANCEOF_name); return class_entry;