mirror of
https://github.com/php/php-src.git
synced 2024-09-22 18:37:25 +00:00
Register parameter attributes via stub in ext/zend_test (#10183)
This commit is contained in:
parent
8b37c4ea5e
commit
3e48e52d93
@ -747,61 +747,12 @@ PHP_MINIT_FUNCTION(zend_test)
|
||||
zend_test_parameter_attribute = register_class_ZendTestParameterAttribute();
|
||||
zend_mark_internal_attribute(zend_test_parameter_attribute);
|
||||
|
||||
{
|
||||
zend_attribute *attr;
|
||||
|
||||
attr = zend_add_parameter_attribute(
|
||||
zend_hash_str_find_ptr(CG(function_table), "zend_test_parameter_with_attribute", sizeof("zend_test_parameter_with_attribute") - 1),
|
||||
0,
|
||||
zend_test_parameter_attribute->name,
|
||||
1
|
||||
);
|
||||
|
||||
ZVAL_PSTRING(&attr->args[0].value, "value1");
|
||||
}
|
||||
|
||||
zend_test_property_attribute = register_class_ZendTestPropertyAttribute();
|
||||
zend_mark_internal_attribute(zend_test_property_attribute);
|
||||
|
||||
zend_test_class_with_method_with_parameter_attribute = register_class_ZendTestClassWithMethodWithParameterAttribute();
|
||||
|
||||
{
|
||||
zend_attribute *attr;
|
||||
|
||||
attr = zend_add_parameter_attribute(
|
||||
zend_hash_str_find_ptr(&zend_test_class_with_method_with_parameter_attribute->function_table, "no_override", sizeof("no_override") - 1),
|
||||
0,
|
||||
zend_test_parameter_attribute->name,
|
||||
1
|
||||
);
|
||||
|
||||
ZVAL_PSTRING(&attr->args[0].value, "value2");
|
||||
|
||||
attr = zend_add_parameter_attribute(
|
||||
zend_hash_str_find_ptr(&zend_test_class_with_method_with_parameter_attribute->function_table, "override", sizeof("override") - 1),
|
||||
0,
|
||||
zend_test_parameter_attribute->name,
|
||||
1
|
||||
);
|
||||
|
||||
ZVAL_PSTRING(&attr->args[0].value, "value3");
|
||||
}
|
||||
|
||||
zend_test_child_class_with_method_with_parameter_attribute = register_class_ZendTestChildClassWithMethodWithParameterAttribute(zend_test_class_with_method_with_parameter_attribute);
|
||||
|
||||
{
|
||||
zend_attribute *attr;
|
||||
|
||||
attr = zend_add_parameter_attribute(
|
||||
zend_hash_str_find_ptr(&zend_test_child_class_with_method_with_parameter_attribute->function_table, "override", sizeof("override") - 1),
|
||||
0,
|
||||
zend_test_parameter_attribute->name,
|
||||
1
|
||||
);
|
||||
|
||||
ZVAL_PSTRING(&attr->args[0].value, "value4");
|
||||
}
|
||||
|
||||
zend_test_forbid_dynamic_call = register_class_ZendTestForbidDynamicCall();
|
||||
|
||||
zend_test_ns_foo_class = register_class_ZendTestNS_Foo();
|
||||
|
@ -74,12 +74,21 @@ namespace {
|
||||
}
|
||||
|
||||
class ZendTestClassWithMethodWithParameterAttribute {
|
||||
final public function no_override(string $parameter): int {}
|
||||
public function override(string $parameter): int {}
|
||||
final public function no_override(
|
||||
#[ZendTestParameterAttribute("value2")]
|
||||
string $parameter
|
||||
): int {}
|
||||
public function override(
|
||||
#[ZendTestParameterAttribute("value3")]
|
||||
string $parameter
|
||||
): int {}
|
||||
}
|
||||
|
||||
class ZendTestChildClassWithMethodWithParameterAttribute extends ZendTestClassWithMethodWithParameterAttribute {
|
||||
public function override(string $parameter): int {}
|
||||
public function override(
|
||||
#[ZendTestParameterAttribute("value4")]
|
||||
string $parameter
|
||||
): int {}
|
||||
}
|
||||
|
||||
final class ZendTestForbidDynamicCall {
|
||||
@ -151,7 +160,10 @@ namespace {
|
||||
|
||||
function zend_get_unit_enum(): ZendTestUnitEnum {}
|
||||
|
||||
function zend_test_parameter_with_attribute(string $parameter): int {}
|
||||
function zend_test_parameter_with_attribute(
|
||||
#[ZendTestParameterAttribute("value1")]
|
||||
string $parameter
|
||||
): int {}
|
||||
|
||||
function zend_get_current_func_name(): string {}
|
||||
|
||||
|
43
ext/zend_test/test_arginfo.h
generated
43
ext/zend_test/test_arginfo.h
generated
@ -1,5 +1,5 @@
|
||||
/* This is a generated file, edit the .stub.php file instead.
|
||||
* Stub hash: 5c7af89178bc4ea0f49fbf516d81f4fdaebece22 */
|
||||
* Stub hash: f19c545e86b40d999d43008882f0c151d26be121 */
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_array_return, 0, 0, IS_ARRAY, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
@ -373,6 +373,17 @@ static const zend_function_entry class_ZendTestNS2_ZendSubNS_Foo_methods[] = {
|
||||
static void register_test_symbols(int module_number)
|
||||
{
|
||||
REGISTER_LONG_CONSTANT("ZEND_TEST_DEPRECATED", 42, CONST_PERSISTENT | CONST_DEPRECATED);
|
||||
|
||||
|
||||
#if (PHP_VERSION_ID >= 80200)
|
||||
zend_string *attribute_name_ZendTestParameterAttribute_zend_test_parameter_with_attribute_arg0 = zend_string_init_interned("ZendTestParameterAttribute", sizeof("ZendTestParameterAttribute") - 1, 1);
|
||||
zend_attribute *attribute_ZendTestParameterAttribute_zend_test_parameter_with_attribute_arg0 = zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "zend_test_parameter_with_attribute", sizeof("zend_test_parameter_with_attribute") - 1), 0, attribute_name_ZendTestParameterAttribute_zend_test_parameter_with_attribute_arg0, 1);
|
||||
zend_string_release(attribute_name_ZendTestParameterAttribute_zend_test_parameter_with_attribute_arg0);
|
||||
zval attribute_ZendTestParameterAttribute_zend_test_parameter_with_attribute_arg0_arg0;
|
||||
zend_string *attribute_ZendTestParameterAttribute_zend_test_parameter_with_attribute_arg0_arg0_str = zend_string_init("value1", strlen("value1"), 1);
|
||||
ZVAL_STR(&attribute_ZendTestParameterAttribute_zend_test_parameter_with_attribute_arg0_arg0, attribute_ZendTestParameterAttribute_zend_test_parameter_with_attribute_arg0_arg0_str);
|
||||
ZVAL_COPY_VALUE(&attribute_ZendTestParameterAttribute_zend_test_parameter_with_attribute_arg0->args[0].value, &attribute_ZendTestParameterAttribute_zend_test_parameter_with_attribute_arg0_arg0);
|
||||
#endif
|
||||
}
|
||||
|
||||
static zend_class_entry *register_class__ZendTestInterface(void)
|
||||
@ -569,6 +580,25 @@ static zend_class_entry *register_class_ZendTestClassWithMethodWithParameterAttr
|
||||
|
||||
INIT_CLASS_ENTRY(ce, "ZendTestClassWithMethodWithParameterAttribute", class_ZendTestClassWithMethodWithParameterAttribute_methods);
|
||||
class_entry = zend_register_internal_class_ex(&ce, NULL);
|
||||
#if (PHP_VERSION_ID >= 80200)
|
||||
|
||||
|
||||
zend_string *attribute_name_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_no_override_arg0 = zend_string_init_interned("ZendTestParameterAttribute", sizeof("ZendTestParameterAttribute") - 1, 1);
|
||||
zend_attribute *attribute_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_no_override_arg0 = zend_add_parameter_attribute(zend_hash_str_find_ptr(&class_entry->function_table, "no_override", sizeof("no_override") - 1), 0, attribute_name_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_no_override_arg0, 1);
|
||||
zend_string_release(attribute_name_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_no_override_arg0);
|
||||
zval attribute_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_no_override_arg0_arg0;
|
||||
zend_string *attribute_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_no_override_arg0_arg0_str = zend_string_init("value2", strlen("value2"), 1);
|
||||
ZVAL_STR(&attribute_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_no_override_arg0_arg0, attribute_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_no_override_arg0_arg0_str);
|
||||
ZVAL_COPY_VALUE(&attribute_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_no_override_arg0->args[0].value, &attribute_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_no_override_arg0_arg0);
|
||||
|
||||
zend_string *attribute_name_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_override_arg0 = zend_string_init_interned("ZendTestParameterAttribute", sizeof("ZendTestParameterAttribute") - 1, 1);
|
||||
zend_attribute *attribute_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_override_arg0 = zend_add_parameter_attribute(zend_hash_str_find_ptr(&class_entry->function_table, "override", sizeof("override") - 1), 0, attribute_name_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_override_arg0, 1);
|
||||
zend_string_release(attribute_name_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_override_arg0);
|
||||
zval attribute_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_override_arg0_arg0;
|
||||
zend_string *attribute_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_override_arg0_arg0_str = zend_string_init("value3", strlen("value3"), 1);
|
||||
ZVAL_STR(&attribute_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_override_arg0_arg0, attribute_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_override_arg0_arg0_str);
|
||||
ZVAL_COPY_VALUE(&attribute_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_override_arg0->args[0].value, &attribute_ZendTestParameterAttribute_ZendTestClassWithMethodWithParameterAttribute_override_arg0_arg0);
|
||||
#endif
|
||||
|
||||
return class_entry;
|
||||
}
|
||||
@ -579,6 +609,17 @@ static zend_class_entry *register_class_ZendTestChildClassWithMethodWithParamete
|
||||
|
||||
INIT_CLASS_ENTRY(ce, "ZendTestChildClassWithMethodWithParameterAttribute", class_ZendTestChildClassWithMethodWithParameterAttribute_methods);
|
||||
class_entry = zend_register_internal_class_ex(&ce, class_entry_ZendTestClassWithMethodWithParameterAttribute);
|
||||
#if (PHP_VERSION_ID >= 80200)
|
||||
|
||||
|
||||
zend_string *attribute_name_ZendTestParameterAttribute_ZendTestChildClassWithMethodWithParameterAttribute_override_arg0 = zend_string_init_interned("ZendTestParameterAttribute", sizeof("ZendTestParameterAttribute") - 1, 1);
|
||||
zend_attribute *attribute_ZendTestParameterAttribute_ZendTestChildClassWithMethodWithParameterAttribute_override_arg0 = zend_add_parameter_attribute(zend_hash_str_find_ptr(&class_entry->function_table, "override", sizeof("override") - 1), 0, attribute_name_ZendTestParameterAttribute_ZendTestChildClassWithMethodWithParameterAttribute_override_arg0, 1);
|
||||
zend_string_release(attribute_name_ZendTestParameterAttribute_ZendTestChildClassWithMethodWithParameterAttribute_override_arg0);
|
||||
zval attribute_ZendTestParameterAttribute_ZendTestChildClassWithMethodWithParameterAttribute_override_arg0_arg0;
|
||||
zend_string *attribute_ZendTestParameterAttribute_ZendTestChildClassWithMethodWithParameterAttribute_override_arg0_arg0_str = zend_string_init("value4", strlen("value4"), 1);
|
||||
ZVAL_STR(&attribute_ZendTestParameterAttribute_ZendTestChildClassWithMethodWithParameterAttribute_override_arg0_arg0, attribute_ZendTestParameterAttribute_ZendTestChildClassWithMethodWithParameterAttribute_override_arg0_arg0_str);
|
||||
ZVAL_COPY_VALUE(&attribute_ZendTestParameterAttribute_ZendTestChildClassWithMethodWithParameterAttribute_override_arg0->args[0].value, &attribute_ZendTestParameterAttribute_ZendTestChildClassWithMethodWithParameterAttribute_override_arg0_arg0);
|
||||
#endif
|
||||
|
||||
return class_entry;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user