Fix variadic arginfos for Reflection functions

Fix arginfos of required arguments for some Reflection methods
This commit is contained in:
Gabriel Caruso 2019-02-06 23:31:24 -02:00
parent 35980191d2
commit 35db1ccdd1
No known key found for this signature in database
GPG Key ID: EA85C7988F5A6877
3 changed files with 18 additions and 8 deletions

View File

@ -105,6 +105,16 @@ PHP 8.0 UPGRADE NOTES
as a string instead of an ASCII codepoint. The previous behavior may be
restored with an explicit call to chr().
- Reflection:
. The following methods signatures have been changed:
* ReflectionClass::newInstance(mixed $args) -> ReflectionClass::newInstance([mixed ...$args])
* ReflectionFunction::invoke(mixed $args) -> ReflectionFunction::invoke(mixed ...$args)
* ReflectionMethod::invoke(object $object, mixed $args) -> ReflectionMethod::invoke(object $object [, mixed ...$args])
Inheriting classes implementing this method will now have to use
a compatible method signature.
- SPL:
. SplFileObject::fgetss() has been removed.
. SplHeap::compare($a, $b) now specifies a method signature. Inheriting

View File

@ -3174,7 +3174,7 @@ static void reflection_method_invoke(INTERNAL_FUNCTION_PARAMETERS, int variadic)
}
/* }}} */
/* {{{ proto public mixed ReflectionMethod::invoke(mixed object, mixed* args)
/* {{{ proto public mixed ReflectionMethod::invoke(mixed object, [mixed* args])
Invokes the method. */
ZEND_METHOD(reflection_method, invoke)
{
@ -4597,7 +4597,7 @@ ZEND_METHOD(reflection_class, isInstance)
}
/* }}} */
/* {{{ proto public stdclass ReflectionClass::newInstance(mixed* args, ...)
/* {{{ proto public stdclass ReflectionClass::newInstance([mixed* args], ...)
Returns an instance of this class */
ZEND_METHOD(reflection_class, newInstance)
{
@ -6181,7 +6181,7 @@ ZEND_BEGIN_ARG_INFO(arginfo_reflection_function___construct, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_reflection_function_invoke, 0, 0, 0)
ZEND_ARG_INFO(0, args)
ZEND_ARG_VARIADIC_INFO(0, args)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO(arginfo_reflection_function_invokeArgs, 0)
@ -6259,9 +6259,9 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_reflection_method___construct, 0, 0, 1)
ZEND_ARG_INFO(0, name)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO(arginfo_reflection_method_invoke, 0)
ZEND_BEGIN_ARG_INFO_EX(arginfo_reflection_method_invoke, 0, 0, 1)
ZEND_ARG_INFO(0, object)
ZEND_ARG_INFO(0, args)
ZEND_ARG_VARIADIC_INFO(0, args)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO(arginfo_reflection_method_invokeArgs, 0)
@ -6355,8 +6355,8 @@ ZEND_BEGIN_ARG_INFO(arginfo_reflection_class_isInstance, 0)
ZEND_ARG_INFO(0, object)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO(arginfo_reflection_class_newInstance, 0)
ZEND_ARG_INFO(0, args)
ZEND_BEGIN_ARG_INFO_EX(arginfo_reflection_class_newInstance, 0, 0, 0)
ZEND_ARG_VARIADIC_INFO(0, args)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO(arginfo_reflection_class_newInstanceWithoutConstructor, 0)

View File

@ -265,7 +265,7 @@ Class [ <internal:Reflection> class ReflectionClass implements Reflector ] {
Method [ <internal:Reflection> public method newInstance ] {
- Parameters [1] {
Parameter #0 [ <required> $args ]
Parameter #0 [ <optional> ...$args ]
}
}