From 3fc3cfbad01a1046fc13ac864fa82bc83b34efcd Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 13 Jul 2021 12:02:05 +0200 Subject: [PATCH] Fix Phar::offsetGet() return type It's possible to change the returned type using setFileClass(), which unfortunately only enforces that it's a subtype of SplFileInfo, not PharFileInfo. --- ext/phar/phar_object.stub.php | 4 ++-- ext/phar/phar_object_arginfo.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ext/phar/phar_object.stub.php b/ext/phar/phar_object.stub.php index c7a0dcbd448..5696ff5ddaf 100644 --- a/ext/phar/phar_object.stub.php +++ b/ext/phar/phar_object.stub.php @@ -106,7 +106,7 @@ class Phar extends RecursiveDirectoryIterator implements Countable, ArrayAccess * @param string $localName * @tentative-return-type */ - public function offsetGet($localName): PharFileInfo {} + public function offsetGet($localName): SplFileInfo {} /** * @param string $localName @@ -371,7 +371,7 @@ class PharData extends RecursiveDirectoryIterator implements Countable, ArrayAcc * @tentative-return-type * @implementation-alias Phar::offsetGet */ - public function offsetGet($localName): PharFileInfo {} + public function offsetGet($localName): SplFileInfo {} /** * @param string $localName diff --git a/ext/phar/phar_object_arginfo.h b/ext/phar/phar_object_arginfo.h index ea01a9a2d16..34ed8089028 100644 --- a/ext/phar/phar_object_arginfo.h +++ b/ext/phar/phar_object_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: fa11774e0b29ff4f711f1677b395545334e1aee9 */ + * Stub hash: ac04a4161a11d054922cb04787f81f5661203e3e */ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Phar___construct, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) @@ -119,7 +119,7 @@ ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_Phar_offsetExist ZEND_ARG_INFO(0, localName) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_Phar_offsetGet, 0, 1, PharFileInfo, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_Phar_offsetGet, 0, 1, SplFileInfo, 0) ZEND_ARG_INFO(0, localName) ZEND_END_ARG_INFO()