From 895bb61106a74e3399f4f410bf7fa2b625cbacfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Tue, 18 May 2021 17:50:05 +0200 Subject: [PATCH 1/3] Declare tentative return types for ext/dom --- ext/dom/php_dom.stub.php | 352 +++++++++++++++++++------------------- ext/dom/php_dom_arginfo.h | 230 +++++++++++++++---------- 2 files changed, 316 insertions(+), 266 deletions(-) diff --git a/ext/dom/php_dom.stub.php b/ext/dom/php_dom.stub.php index d460c3e4333ff..e979491d04571 100644 --- a/ext/dom/php_dom.stub.php +++ b/ext/dom/php_dom.stub.php @@ -103,56 +103,56 @@ class DOMNode public string $textContent; - /** @return DOMNode|false */ - public function appendChild(DOMNode $node) {} + /** @tentative-return-type */ + public function appendChild(DOMNode $node): DOMNode|false {} - /** @return string|false */ - public function C14N(bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null) {} + /** @tentative-return-type */ + public function C14N(bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null): string|false {} - /** @return int|false */ - public function C14NFile(string $uri, bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null) {} + /** @tentative-return-type */ + public function C14NFile(string $uri, bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null): int|false {} - /** @return DOMNode|false */ - public function cloneNode(bool $deep = false) {} + /** @tentative-return-type */ + public function cloneNode(bool $deep = false): DOMNode|false {} - /** @return int */ - public function getLineNo() {} + /** @tentative-return-type */ + public function getLineNo(): int {} - /** @return string|null */ - public function getNodePath() {} + /** @tentative-return-type */ + public function getNodePath(): ?string {} - /** @return bool */ - public function hasAttributes() {} + /** @tentative-return-type */ + public function hasAttributes(): bool {} - /** @return bool */ - public function hasChildNodes() {} + /** @tentative-return-type */ + public function hasChildNodes(): bool {} - /** @return DOMNode|false */ - public function insertBefore(DOMNode $node, ?DOMNode $child = null) {} + /** @tentative-return-type */ + public function insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false {} - /** @return bool */ - public function isDefaultNamespace(string $namespace) {} + /** @tentative-return-type */ + public function isDefaultNamespace(string $namespace): bool {} - /** @return bool */ - public function isSameNode(DOMNode $otherNode) {} + /** @tentative-return-type */ + public function isSameNode(DOMNode $otherNode): bool {} - /** @return bool */ - public function isSupported(string $feature, string $version) {} + /** @tentative-return-type */ + public function isSupported(string $feature, string $version): bool {} - /** @return string|null */ - public function lookupNamespaceURI(?string $prefix) {} + /** @tentative-return-type */ + public function lookupNamespaceURI(?string $prefix): ?string {} - /** @return string|null */ - public function lookupPrefix(string $namespace) {} + /** @tentative-return-type */ + public function lookupPrefix(string $namespace): ?string {} - /** @return void */ - public function normalize() {} + /** @tentative-return-type */ + public function normalize(): void {} - /** @return DOMNode|false */ - public function removeChild(DOMNode $child) {} + /** @tentative-return-type */ + public function removeChild(DOMNode $child): DOMNode|false {} - /** @return DOMNode|false */ - public function replaceChild(DOMNode $node, DOMNode $child) {} + /** @tentative-return-type */ + public function replaceChild(DOMNode $node, DOMNode $child): DOMNode|false {} } class DOMNameSpaceNode @@ -184,17 +184,17 @@ class DOMNameSpaceNode class DOMImplementation { - /** @return void */ - public function getFeature(string $feature, string $version) {} + /** @tentative-return-type */ + public function getFeature(string $feature, string $version): void {} - /** @return bool */ - public function hasFeature(string $feature, string $version) {} + /** @tentative-return-type */ + public function hasFeature(string $feature, string $version): bool {} - /** @return DOMDocumentType|false */ - public function createDocumentType(string $qualifiedName, string $publicId = "", string $systemId = "") {} + /** @tentative-return-type */ + public function createDocumentType(string $qualifiedName, string $publicId = "", string $systemId = ""): DOMDocumentType|false {} - /** @return DOMDocument|false */ - public function createDocument(?string $namespace = null, string $qualifiedName = "", ?DOMDocumentType $doctype = null) {} + /** @tentative-return-type */ + public function createDocument(?string $namespace = null, string $qualifiedName = "", ?DOMDocumentType $doctype = null): DOMDocument|false {} } class DOMDocumentFragment extends DOMNode implements DOMParentNode @@ -210,8 +210,8 @@ class DOMDocumentFragment extends DOMNode implements DOMParentNode public function __construct() {} - /** @return bool */ - public function appendXML(string $data) {} + /** @tentative-return-type */ + public function appendXML(string $data): bool {} /** @param DOMNode|string $nodes */ public function append(...$nodes): void {} @@ -230,8 +230,8 @@ public function count(): int {} public function getIterator(): Iterator {} - /** @return DOMNode|null */ - public function item(int $index) {} + /** @tentative-return-type */ + public function item(int $index): ?DOMNode {} } class DOMCharacterData extends DOMNode implements DOMChildNode @@ -248,20 +248,20 @@ class DOMCharacterData extends DOMNode implements DOMChildNode /** @readonly */ public ?DOMElement $nextElementSibling; - /** @return bool */ - public function appendData(string $data) {} + /** @tentative-return-type */ + public function appendData(string $data): bool {} - /** @return string|false */ - public function substringData(int $offset, int $count) {} + /** @tentative-return-type */ + public function substringData(int $offset, int $count): string|false {} - /** @return bool */ - public function insertData(int $offset, string $data) {} + /** @tentative-return-type */ + public function insertData(int $offset, string $data): bool {} - /** @return bool */ - public function deleteData(int $offset, int $count) {} + /** @tentative-return-type */ + public function deleteData(int $offset, int $count): bool {} - /** @return bool */ - public function replaceData(int $offset, int $count, string $data) {} + /** @tentative-return-type */ + public function replaceData(int $offset, int $count, string $data): bool {} /** @param DOMNode|string $nodes */ public function replaceWith(...$nodes): void {} @@ -294,8 +294,8 @@ class DOMAttr extends DOMNode public function __construct(string $name, string $value = "") {} - /** @return bool */ - public function isId() {} + /** @tentative-return-type */ + public function isId(): bool {} } class DOMElement extends DOMNode implements DOMParentNode, DOMChildNode @@ -323,59 +323,59 @@ class DOMElement extends DOMNode implements DOMParentNode, DOMChildNode public function __construct(string $qualifiedName, ?string $value = null, string $namespace = "") {} - /** @return string */ - public function getAttribute(string $qualifiedName) {} + /** @tentative-return-type */ + public function getAttribute(string $qualifiedName): string {} - /** @return string */ - public function getAttributeNS(?string $namespace, string $localName) {} + /** @tentative-return-type */ + public function getAttributeNS(?string $namespace, string $localName): string {} - /** @return DOMAttr|DOMNamespaceNode|false */ - public function getAttributeNode(string $qualifiedName) {} + /** @tentative-return-type */ + public function getAttributeNode(string $qualifiedName): DOMAttr|DOMNameSpaceNode|false {} - /** @return DOMAttr|DOMNamespaceNode|null */ - public function getAttributeNodeNS(?string $namespace, string $localName) {} + /** @tentative-return-type */ + public function getAttributeNodeNS(?string $namespace, string $localName): DOMAttr|DOMNameSpaceNode|null {} - /** @return DOMNodeList */ - public function getElementsByTagName(string $qualifiedName) {} + /** @tentative-return-type */ + public function getElementsByTagName(string $qualifiedName): DOMNodeList {} - /** @return DOMNodeList */ - public function getElementsByTagNameNS(?string $namespace, string $localName) {} + /** @tentative-return-type */ + public function getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList {} - /** @return bool */ - public function hasAttribute(string $qualifiedName) {} + /** @tentative-return-type */ + public function hasAttribute(string $qualifiedName): bool {} - /** @return bool */ - public function hasAttributeNS(?string $namespace, string $localName) {} + /** @tentative-return-type */ + public function hasAttributeNS(?string $namespace, string $localName): bool {} - /** @return bool */ - public function removeAttribute(string $qualifiedName) {} + /** @tentative-return-type */ + public function removeAttribute(string $qualifiedName): bool {} - /** @return void */ - public function removeAttributeNS(?string $namespace, string $localName) {} + /** @tentative-return-type */ + public function removeAttributeNS(?string $namespace, string $localName): void {} - /** @return DOMAttr|false */ - public function removeAttributeNode(DOMAttr $attr) {} + /** @tentative-return-type */ + public function removeAttributeNode(DOMAttr $attr): DOMAttr|false {} - /** @return DOMAttr|bool */ - public function setAttribute(string $qualifiedName, string $value) {} + /** @tentative-return-type */ + public function setAttribute(string $qualifiedName, string $value): DOMAttr|bool {} - /** @return void */ - public function setAttributeNS(?string $namespace, string $qualifiedName, string $value) {} + /** @tentative-return-type */ + public function setAttributeNS(?string $namespace, string $qualifiedName, string $value): void {} - /** @return DOMAttr|null|false */ - public function setAttributeNode(DOMAttr $attr) {} + /** @tentative-return-type */ + public function setAttributeNode(DOMAttr $attr): DOMAttr|null|false {} - /** @return DOMAttr|null|false */ - public function setAttributeNodeNS(DOMAttr $attr) {} + /** @tentative-return-type */ + public function setAttributeNodeNS(DOMAttr $attr): DOMAttr|null|false {} - /** @return void */ - public function setIdAttribute(string $qualifiedName, bool $isId) {} + /** @tentative-return-type */ + public function setIdAttribute(string $qualifiedName, bool $isId): void {} - /** @return void */ - public function setIdAttributeNS(string $namespace, string $qualifiedName, bool $isId) {} + /** @tentative-return-type */ + public function setIdAttributeNS(string $namespace, string $qualifiedName, bool $isId): void {} - /** @return void */ - public function setIdAttributeNode(DOMAttr $attr, bool $isId) {} + /** @tentative-return-type */ + public function setIdAttributeNode(DOMAttr $attr, bool $isId): void {} public function remove(): void {} @@ -458,102 +458,102 @@ class DOMDocument extends DOMNode implements DOMParentNode public function __construct(string $version = "1.0", string $encoding = "") {} - /** @return DOMAttr|false */ - public function createAttribute(string $localName) {} + /** @tentative-return-type */ + public function createAttribute(string $localName): DOMAttr|false {} - /** @return DOMAttr|false */ - public function createAttributeNS(?string $namespace, string $qualifiedName) {} + /** @tentative-return-type */ + public function createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false {} - /** @return DOMCdataSection|false */ - public function createCDATASection(string $data) {} + /** @tentative-return-type */ + public function createCDATASection(string $data): DOMCdataSection|false {} - /** @return DOMComment */ - public function createComment(string $data) {} + /** @tentative-return-type */ + public function createComment(string $data): DOMComment {} - /** @return DOMDocumentFragment */ - public function createDocumentFragment() {} + /** @tentative-return-type */ + public function createDocumentFragment(): DOMDocumentFragment {} - /** @return DOMElement|false */ - public function createElement(string $localName, string $value = "") {} + /** @tentative-return-type */ + public function createElement(string $localName, string $value = ""): DOMElement|false {} - /** @return DOMElement|false */ - public function createElementNS(?string $namespace, string $qualifiedName, string $value = "") {} + /** @tentative-return-type */ + public function createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false {} - /** @return DOMEntityReference|false */ - public function createEntityReference(string $name) {} + /** @tentative-return-type */ + public function createEntityReference(string $name): DOMEntityReference|false {} - /** @return DOMProcessingInstruction|false */ - public function createProcessingInstruction(string $target, string $data = "") {} + /** @tentative-return-type */ + public function createProcessingInstruction(string $target, string $data = ""): DOMProcessingInstruction|false {} - /** @return DOMText */ - public function createTextNode(string $data) {} + /** @tentative-return-type */ + public function createTextNode(string $data): DOMText {} - /** @return DOMElement|null */ - public function getElementById(string $elementId) {} + /** @tentative-return-type */ + public function getElementById(string $elementId): DOMElement|null {} - /** @return DOMNodeList */ - public function getElementsByTagName(string $qualifiedName) {} + /** @tentative-return-type */ + public function getElementsByTagName(string $qualifiedName): DOMNodeList {} - /** @return DOMNodeList */ - public function getElementsByTagNameNS(?string $namespace, string $localName) {} + /** @tentative-return-type */ + public function getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList {} - /** @return DOMNode|false */ - public function importNode(DOMNode $node, bool $deep = false) {} + /** @tentative-return-type */ + public function importNode(DOMNode $node, bool $deep = false): DOMNode|false {} - /** @return DOMDocument|bool */ - public function load(string $filename, int $options = 0) {} + /** @tentative-return-type */ + public function load(string $filename, int $options = 0): DOMDocument|bool {} - /** @return DOMDocument|bool */ - public function loadXML(string $source, int $options = 0) {} + /** @tentative-return-type */ + public function loadXML(string $source, int $options = 0): DOMDocument|bool {} - /** @return void */ - public function normalizeDocument() {} + /** @tentative-return-type */ + public function normalizeDocument(): void {} - /** @return bool */ - public function registerNodeClass(string $baseClass, ?string $extendedClass) {} + /** @tentative-return-type */ + public function registerNodeClass(string $baseClass, ?string $extendedClass): bool {} - /** @return int|false */ - public function save(string $filename, int $options = 0) {} + /** @tentative-return-type */ + public function save(string $filename, int $options = 0): int|false {} #ifdef LIBXML_HTML_ENABLED - /** @return DOMDocument|bool */ - public function loadHTML(string $source, int $options = 0) {} + /** @tentative-return-type */ + public function loadHTML(string $source, int $options = 0): DOMDocument|bool {} - /** @return DOMDocument|bool */ - public function loadHTMLFile(string $filename, int $options = 0) {} + /** @tentative-return-type */ + public function loadHTMLFile(string $filename, int $options = 0): DOMDocument|bool {} - /** @return string|false */ - public function saveHTML(?DOMNode $node = null) {} + /** @tentative-return-type */ + public function saveHTML(?DOMNode $node = null): string|false {} - /** @return int|false */ - public function saveHTMLFile(string $filename) {} + /** @tentative-return-type */ + public function saveHTMLFile(string $filename): int|false {} #endif - /** @return string|false */ - public function saveXML(?DOMNode $node = null, int $options = 0) {} + /** @tentative-return-type */ + public function saveXML(?DOMNode $node = null, int $options = 0): string|false {} #ifdef LIBXML_SCHEMAS_ENABLED - /** @return bool */ - public function schemaValidate(string $filename, int $flags = 0) {} + /** @tentative-return-type */ + public function schemaValidate(string $filename, int $flags = 0): bool {} - /** @return bool */ - public function schemaValidateSource(string $source, int $flags = 0) {} + /** @tentative-return-type */ + public function schemaValidateSource(string $source, int $flags = 0): bool {} - /** @return bool */ - public function relaxNGValidate(string $filename) {} + /** @tentative-return-type */ + public function relaxNGValidate(string $filename): bool {} - /** @return bool */ - public function relaxNGValidateSource(string $source) {} + /** @tentative-return-type */ + public function relaxNGValidateSource(string $source): bool {} #endif - /** @return bool */ - public function validate() {} + /** @tentative-return-type */ + public function validate(): bool {} - /** @return int|false */ - public function xinclude(int $options = 0) {} + /** @tentative-return-type */ + public function xinclude(int $options = 0): int|false {} - /** @return DOMNode|false */ - public function adoptNode(DOMNode $node) {} + /** @tentative-return-type */ + public function adoptNode(DOMNode $node): DOMNode|false {} /** @param DOMNode|string $nodes */ public function append(...$nodes): void {} @@ -575,17 +575,17 @@ class DOMText extends DOMCharacterData public function __construct(string $data = "") {} - /** @return bool */ - public function isWhitespaceInElementContent() {} + /** @tentative-return-type */ + public function isWhitespaceInElementContent(): bool {} /** - * @return bool + * @tentative-return-type * @alias DOMText::isWhitespaceInElementContent */ - public function isElementContentWhitespace() {} + public function isElementContentWhitespace(): bool {} - /** @return DOMText|false */ - public function splitText(int $offset) {} + /** @tentative-return-type */ + public function splitText(int $offset): DOMText|false {} } class DOMNamedNodeMap implements IteratorAggregate, Countable @@ -593,14 +593,14 @@ class DOMNamedNodeMap implements IteratorAggregate, Countable /** @readonly */ public int $length; - /** @return DOMNode|null */ - public function getNamedItem(string $qualifiedName) {} + /** @tentative-return-type */ + public function getNamedItem(string $qualifiedName): ?DOMNode {} - /** @return DOMNode|null */ - public function getNamedItemNS(?string $namespace, string $localName) {} + /** @tentative-return-type */ + public function getNamedItemNS(?string $namespace, string $localName): ?DOMNode {} - /** @return DOMNode|null */ - public function item(int $index) {} + /** @tentative-return-type */ + public function item(int $index): ?DOMNode {} /** @tentative-return-type */ public function count(): int {} @@ -663,17 +663,17 @@ class DOMXPath public function __construct(DOMDocument $document, bool $registerNodeNS = true) {} - /** @return mixed */ - public function evaluate(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true) {} + /** @tentative-return-type */ + public function evaluate(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed {} - /** @return mixed */ - public function query(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true) {} + /** @tentative-return-type */ + public function query(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed {} - /** @return bool */ - public function registerNamespace(string $prefix, string $namespace) {} + /** @tentative-return-type */ + public function registerNamespace(string $prefix, string $namespace): bool {} - /** @return void */ - public function registerPhpFunctions(string|array|null $restrict = null) {} + /** @tentative-return-type */ + public function registerPhpFunctions(string|array|null $restrict = null): void {} } #endif diff --git a/ext/dom/php_dom_arginfo.h b/ext/dom/php_dom_arginfo.h index bdf054974a9d0..06aa280b11df0 100644 --- a/ext/dom/php_dom_arginfo.h +++ b/ext/dom/php_dom_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: aa455c75920e15b5f66964cb560e853d6bc423d2 */ + * Stub hash: dc126458345cc95e154ff578f9c24efbe25945a6 */ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_dom_import_simplexml, 0, 1, DOMElement, 1) ZEND_ARG_TYPE_INFO(0, node, IS_OBJECT, 0) @@ -28,18 +28,18 @@ ZEND_END_ARG_INFO() #define arginfo_class_DOMChildNode_replaceWith arginfo_class_DOMParentNode_append -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_appendChild, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMNode_appendChild, 0, 1, DOMNode, MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, node, DOMNode, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_C14N, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_DOMNode_C14N, 0, 0, MAY_BE_STRING|MAY_BE_FALSE) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, exclusive, _IS_BOOL, 0, "false") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, withComments, _IS_BOOL, 0, "false") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, xpath, IS_ARRAY, 1, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, nsPrefixes, IS_ARRAY, 1, "null") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_C14NFile, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_DOMNode_C14NFile, 0, 1, MAY_BE_LONG|MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, uri, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, exclusive, _IS_BOOL, 0, "false") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, withComments, _IS_BOOL, 0, "false") @@ -47,103 +47,116 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_C14NFile, 0, 0, 1) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, nsPrefixes, IS_ARRAY, 1, "null") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_cloneNode, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMNode_cloneNode, 0, 0, DOMNode, MAY_BE_FALSE) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, deep, _IS_BOOL, 0, "false") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_getLineNo, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMNode_getLineNo, 0, 0, IS_LONG, 0) ZEND_END_ARG_INFO() -#define arginfo_class_DOMNode_getNodePath arginfo_class_DOMNode_getLineNo +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMNode_getNodePath, 0, 0, IS_STRING, 1) +ZEND_END_ARG_INFO() -#define arginfo_class_DOMNode_hasAttributes arginfo_class_DOMNode_getLineNo +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMNode_hasAttributes, 0, 0, _IS_BOOL, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_DOMNode_hasChildNodes arginfo_class_DOMNode_getLineNo +#define arginfo_class_DOMNode_hasChildNodes arginfo_class_DOMNode_hasAttributes -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_insertBefore, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMNode_insertBefore, 0, 1, DOMNode, MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, node, DOMNode, 0) ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, child, DOMNode, 1, "null") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_isDefaultNamespace, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMNode_isDefaultNamespace, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_isSameNode, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMNode_isSameNode, 0, 1, _IS_BOOL, 0) ZEND_ARG_OBJ_INFO(0, otherNode, DOMNode, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_isSupported, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMNode_isSupported, 0, 2, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, feature, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, version, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_lookupNamespaceURI, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMNode_lookupNamespaceURI, 0, 1, IS_STRING, 1) ZEND_ARG_TYPE_INFO(0, prefix, IS_STRING, 1) ZEND_END_ARG_INFO() -#define arginfo_class_DOMNode_lookupPrefix arginfo_class_DOMNode_isDefaultNamespace +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMNode_lookupPrefix, 0, 1, IS_STRING, 1) + ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_DOMNode_normalize arginfo_class_DOMNode_getLineNo +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMNode_normalize, 0, 0, IS_VOID, 0) +ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_removeChild, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMNode_removeChild, 0, 1, DOMNode, MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, child, DOMNode, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_replaceChild, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMNode_replaceChild, 0, 2, DOMNode, MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, node, DOMNode, 0) ZEND_ARG_OBJ_INFO(0, child, DOMNode, 0) ZEND_END_ARG_INFO() -#define arginfo_class_DOMImplementation_getFeature arginfo_class_DOMNode_isSupported +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMImplementation_getFeature, 0, 2, IS_VOID, 0) + ZEND_ARG_TYPE_INFO(0, feature, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, version, IS_STRING, 0) +ZEND_END_ARG_INFO() #define arginfo_class_DOMImplementation_hasFeature arginfo_class_DOMNode_isSupported -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMImplementation_createDocumentType, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMImplementation_createDocumentType, 0, 1, DOMDocumentType, MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, publicId, IS_STRING, 0, "\"\"") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, systemId, IS_STRING, 0, "\"\"") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMImplementation_createDocument, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMImplementation_createDocument, 0, 0, DOMDocument, MAY_BE_FALSE) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, namespace, IS_STRING, 1, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, qualifiedName, IS_STRING, 0, "\"\"") ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, doctype, DOMDocumentType, 1, "null") ZEND_END_ARG_INFO() -#define arginfo_class_DOMDocumentFragment___construct arginfo_class_DOMNode_getLineNo +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocumentFragment___construct, 0, 0, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_DOMDocumentFragment_appendXML arginfo_class_DOMCdataSection___construct +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMDocumentFragment_appendXML, 0, 1, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) +ZEND_END_ARG_INFO() #define arginfo_class_DOMDocumentFragment_append arginfo_class_DOMParentNode_append #define arginfo_class_DOMDocumentFragment_prepend arginfo_class_DOMParentNode_append -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMNodeList_count, 0, 0, IS_LONG, 0) -ZEND_END_ARG_INFO() +#define arginfo_class_DOMNodeList_count arginfo_class_DOMNode_getLineNo ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_DOMNodeList_getIterator, 0, 0, Iterator, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNodeList_item, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_DOMNodeList_item, 0, 1, DOMNode, 1) ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0) ZEND_END_ARG_INFO() -#define arginfo_class_DOMCharacterData_appendData arginfo_class_DOMCdataSection___construct +#define arginfo_class_DOMCharacterData_appendData arginfo_class_DOMDocumentFragment_appendXML -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMCharacterData_substringData, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_DOMCharacterData_substringData, 0, 2, MAY_BE_STRING|MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0) ZEND_ARG_TYPE_INFO(0, count, IS_LONG, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMCharacterData_insertData, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMCharacterData_insertData, 0, 2, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0) ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) ZEND_END_ARG_INFO() -#define arginfo_class_DOMCharacterData_deleteData arginfo_class_DOMCharacterData_substringData +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMCharacterData_deleteData, 0, 2, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, count, IS_LONG, 0) +ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMCharacterData_replaceData, 0, 0, 3) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMCharacterData_replaceData, 0, 3, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0) ZEND_ARG_TYPE_INFO(0, count, IS_LONG, 0) ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) @@ -162,7 +175,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMAttr___construct, 0, 0, 1) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, value, IS_STRING, 0, "\"\"") ZEND_END_ARG_INFO() -#define arginfo_class_DOMAttr_isId arginfo_class_DOMNode_getLineNo +#define arginfo_class_DOMAttr_isId arginfo_class_DOMNode_hasAttributes ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMElement___construct, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) @@ -170,62 +183,82 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMElement___construct, 0, 0, 1) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, namespace, IS_STRING, 0, "\"\"") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMElement_getAttribute, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMElement_getAttribute, 0, 1, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMElement_getAttributeNS, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMElement_getAttributeNS, 0, 2, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 1) ZEND_ARG_TYPE_INFO(0, localName, IS_STRING, 0) ZEND_END_ARG_INFO() -#define arginfo_class_DOMElement_getAttributeNode arginfo_class_DOMElement_getAttribute +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMElement_getAttributeNode, 0, 1, DOMAttr|DOMNameSpaceNode, MAY_BE_FALSE) + ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_DOMElement_getAttributeNodeNS arginfo_class_DOMElement_getAttributeNS +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMElement_getAttributeNodeNS, 0, 2, DOMAttr|DOMNameSpaceNode, MAY_BE_NULL) + ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 1) + ZEND_ARG_TYPE_INFO(0, localName, IS_STRING, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_DOMElement_getElementsByTagName arginfo_class_DOMElement_getAttribute +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_DOMElement_getElementsByTagName, 0, 1, DOMNodeList, 0) + ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_DOMElement_getElementsByTagNameNS arginfo_class_DOMElement_getAttributeNS +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_DOMElement_getElementsByTagNameNS, 0, 2, DOMNodeList, 0) + ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 1) + ZEND_ARG_TYPE_INFO(0, localName, IS_STRING, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_DOMElement_hasAttribute arginfo_class_DOMElement_getAttribute +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMElement_hasAttribute, 0, 1, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_DOMElement_hasAttributeNS arginfo_class_DOMElement_getAttributeNS +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMElement_hasAttributeNS, 0, 2, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 1) + ZEND_ARG_TYPE_INFO(0, localName, IS_STRING, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_DOMElement_removeAttribute arginfo_class_DOMElement_getAttribute +#define arginfo_class_DOMElement_removeAttribute arginfo_class_DOMElement_hasAttribute -#define arginfo_class_DOMElement_removeAttributeNS arginfo_class_DOMElement_getAttributeNS +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMElement_removeAttributeNS, 0, 2, IS_VOID, 0) + ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 1) + ZEND_ARG_TYPE_INFO(0, localName, IS_STRING, 0) +ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMElement_removeAttributeNode, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMElement_removeAttributeNode, 0, 1, DOMAttr, MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, attr, DOMAttr, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMElement_setAttribute, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMElement_setAttribute, 0, 2, DOMAttr, MAY_BE_BOOL) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMElement_setAttributeNS, 0, 0, 3) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMElement_setAttributeNS, 0, 3, IS_VOID, 0) ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 1) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0) ZEND_END_ARG_INFO() -#define arginfo_class_DOMElement_setAttributeNode arginfo_class_DOMElement_removeAttributeNode +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMElement_setAttributeNode, 0, 1, DOMAttr, MAY_BE_NULL|MAY_BE_FALSE) + ZEND_ARG_OBJ_INFO(0, attr, DOMAttr, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_DOMElement_setAttributeNodeNS arginfo_class_DOMElement_removeAttributeNode +#define arginfo_class_DOMElement_setAttributeNodeNS arginfo_class_DOMElement_setAttributeNode -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMElement_setIdAttribute, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMElement_setIdAttribute, 0, 2, IS_VOID, 0) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, isId, _IS_BOOL, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMElement_setIdAttributeNS, 0, 0, 3) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMElement_setIdAttributeNS, 0, 3, IS_VOID, 0) ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, isId, _IS_BOOL, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMElement_setIdAttributeNode, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMElement_setIdAttributeNode, 0, 2, IS_VOID, 0) ZEND_ARG_OBJ_INFO(0, attr, DOMAttr, 0) ZEND_ARG_TYPE_INFO(0, isId, _IS_BOOL, 0) ZEND_END_ARG_INFO() @@ -247,135 +280,145 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument___construct, 0, 0, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_STRING, 0, "\"\"") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_createAttribute, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_createAttribute, 0, 1, DOMAttr, MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, localName, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_createAttributeNS, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_createAttributeNS, 0, 2, DOMAttr, MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 1) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) ZEND_END_ARG_INFO() -#define arginfo_class_DOMDocument_createCDATASection arginfo_class_DOMCdataSection___construct +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_createCDATASection, 0, 1, DOMCdataSection, MAY_BE_FALSE) + ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_DOMDocument_createComment arginfo_class_DOMCdataSection___construct +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_DOMDocument_createComment, 0, 1, DOMComment, 0) + ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_DOMDocument_createDocumentFragment arginfo_class_DOMNode_getLineNo +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_DOMDocument_createDocumentFragment, 0, 0, DOMDocumentFragment, 0) +ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_createElement, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_createElement, 0, 1, DOMElement, MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, localName, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, value, IS_STRING, 0, "\"\"") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_createElementNS, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_createElementNS, 0, 2, DOMElement, MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 1) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, value, IS_STRING, 0, "\"\"") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_createEntityReference, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_createEntityReference, 0, 1, DOMEntityReference, MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_createProcessingInstruction, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_createProcessingInstruction, 0, 1, DOMProcessingInstruction, MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, target, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, data, IS_STRING, 0, "\"\"") ZEND_END_ARG_INFO() -#define arginfo_class_DOMDocument_createTextNode arginfo_class_DOMCdataSection___construct +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_DOMDocument_createTextNode, 0, 1, DOMText, 0) + ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) +ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_getElementById, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_DOMDocument_getElementById, 0, 1, DOMElement, 1) ZEND_ARG_TYPE_INFO(0, elementId, IS_STRING, 0) ZEND_END_ARG_INFO() -#define arginfo_class_DOMDocument_getElementsByTagName arginfo_class_DOMElement_getAttribute +#define arginfo_class_DOMDocument_getElementsByTagName arginfo_class_DOMElement_getElementsByTagName -#define arginfo_class_DOMDocument_getElementsByTagNameNS arginfo_class_DOMElement_getAttributeNS +#define arginfo_class_DOMDocument_getElementsByTagNameNS arginfo_class_DOMElement_getElementsByTagNameNS -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_importNode, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_importNode, 0, 1, DOMNode, MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, node, DOMNode, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, deep, _IS_BOOL, 0, "false") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_load, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_load, 0, 1, DOMDocument, MAY_BE_BOOL) ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_loadXML, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_loadXML, 0, 1, DOMDocument, MAY_BE_BOOL) ZEND_ARG_TYPE_INFO(0, source, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") ZEND_END_ARG_INFO() -#define arginfo_class_DOMDocument_normalizeDocument arginfo_class_DOMNode_getLineNo +#define arginfo_class_DOMDocument_normalizeDocument arginfo_class_DOMNode_normalize -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_registerNodeClass, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMDocument_registerNodeClass, 0, 2, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, baseClass, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, extendedClass, IS_STRING, 1) ZEND_END_ARG_INFO() -#define arginfo_class_DOMDocument_save arginfo_class_DOMDocument_load +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_DOMDocument_save, 0, 1, MAY_BE_LONG|MAY_BE_FALSE) + ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") +ZEND_END_ARG_INFO() #if defined(LIBXML_HTML_ENABLED) -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_loadHTML, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_loadHTML, 0, 1, DOMDocument, MAY_BE_BOOL) ZEND_ARG_TYPE_INFO(0, source, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") ZEND_END_ARG_INFO() #endif #if defined(LIBXML_HTML_ENABLED) -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_loadHTMLFile, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_loadHTMLFile, 0, 1, DOMDocument, MAY_BE_BOOL) ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") ZEND_END_ARG_INFO() #endif #if defined(LIBXML_HTML_ENABLED) -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_saveHTML, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_DOMDocument_saveHTML, 0, 0, MAY_BE_STRING|MAY_BE_FALSE) ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, node, DOMNode, 1, "null") ZEND_END_ARG_INFO() #endif #if defined(LIBXML_HTML_ENABLED) -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_saveHTMLFile, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_DOMDocument_saveHTMLFile, 0, 1, MAY_BE_LONG|MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) ZEND_END_ARG_INFO() #endif -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_saveXML, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_DOMDocument_saveXML, 0, 0, MAY_BE_STRING|MAY_BE_FALSE) ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, node, DOMNode, 1, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") ZEND_END_ARG_INFO() #if defined(LIBXML_SCHEMAS_ENABLED) -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_schemaValidate, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMDocument_schemaValidate, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0") ZEND_END_ARG_INFO() #endif #if defined(LIBXML_SCHEMAS_ENABLED) -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_schemaValidateSource, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMDocument_schemaValidateSource, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, source, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0") ZEND_END_ARG_INFO() #endif #if defined(LIBXML_SCHEMAS_ENABLED) -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_relaxNGValidate, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMDocument_relaxNGValidate, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) ZEND_END_ARG_INFO() #endif #if defined(LIBXML_SCHEMAS_ENABLED) -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_relaxNGValidateSource, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMDocument_relaxNGValidateSource, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, source, IS_STRING, 0) ZEND_END_ARG_INFO() #endif -#define arginfo_class_DOMDocument_validate arginfo_class_DOMNode_getLineNo +#define arginfo_class_DOMDocument_validate arginfo_class_DOMNode_hasAttributes -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_xinclude, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_DOMDocument_xinclude, 0, 0, MAY_BE_LONG|MAY_BE_FALSE) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") ZEND_END_ARG_INFO() @@ -387,25 +430,32 @@ ZEND_END_ARG_INFO() #define arginfo_class_DOMText___construct arginfo_class_DOMComment___construct -#define arginfo_class_DOMText_isWhitespaceInElementContent arginfo_class_DOMNode_getLineNo +#define arginfo_class_DOMText_isWhitespaceInElementContent arginfo_class_DOMNode_hasAttributes -#define arginfo_class_DOMText_isElementContentWhitespace arginfo_class_DOMNode_getLineNo +#define arginfo_class_DOMText_isElementContentWhitespace arginfo_class_DOMNode_hasAttributes -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMText_splitText, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMText_splitText, 0, 1, DOMText, MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0) ZEND_END_ARG_INFO() -#define arginfo_class_DOMNamedNodeMap_getNamedItem arginfo_class_DOMElement_getAttribute +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_DOMNamedNodeMap_getNamedItem, 0, 1, DOMNode, 1) + ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_DOMNamedNodeMap_getNamedItemNS arginfo_class_DOMElement_getAttributeNS +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_DOMNamedNodeMap_getNamedItemNS, 0, 2, DOMNode, 1) + ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 1) + ZEND_ARG_TYPE_INFO(0, localName, IS_STRING, 0) +ZEND_END_ARG_INFO() #define arginfo_class_DOMNamedNodeMap_item arginfo_class_DOMNodeList_item -#define arginfo_class_DOMNamedNodeMap_count arginfo_class_DOMNodeList_count +#define arginfo_class_DOMNamedNodeMap_count arginfo_class_DOMNode_getLineNo #define arginfo_class_DOMNamedNodeMap_getIterator arginfo_class_DOMNodeList_getIterator -#define arginfo_class_DOMEntityReference___construct arginfo_class_DOMDocument_createEntityReference +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMEntityReference___construct, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0) +ZEND_END_ARG_INFO() #define arginfo_class_DOMProcessingInstruction___construct arginfo_class_DOMAttr___construct @@ -417,7 +467,7 @@ ZEND_END_ARG_INFO() #endif #if defined(LIBXML_XPATH_ENABLED) -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMXPath_evaluate, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMXPath_evaluate, 0, 1, IS_MIXED, 0) ZEND_ARG_TYPE_INFO(0, expression, IS_STRING, 0) ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, contextNode, DOMNode, 1, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, registerNodeNS, _IS_BOOL, 0, "true") @@ -429,14 +479,14 @@ ZEND_END_ARG_INFO() #endif #if defined(LIBXML_XPATH_ENABLED) -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMXPath_registerNamespace, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMXPath_registerNamespace, 0, 2, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, prefix, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 0) ZEND_END_ARG_INFO() #endif #if defined(LIBXML_XPATH_ENABLED) -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMXPath_registerPhpFunctions, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMXPath_registerPhpFunctions, 0, 0, IS_VOID, 0) ZEND_ARG_TYPE_MASK(0, restrict, MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_NULL, "null") ZEND_END_ARG_INFO() #endif From 1ddde7cd18ddd1bfddc1a8ea9a2653de1c64a0e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Fri, 16 Jul 2021 21:59:47 +0200 Subject: [PATCH 2/3] Declare never return type for DOMImplementation::getFeature() --- ext/dom/php_dom.stub.php | 2 +- ext/dom/php_dom_arginfo.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ext/dom/php_dom.stub.php b/ext/dom/php_dom.stub.php index e979491d04571..db1626cda3289 100644 --- a/ext/dom/php_dom.stub.php +++ b/ext/dom/php_dom.stub.php @@ -185,7 +185,7 @@ class DOMNameSpaceNode class DOMImplementation { /** @tentative-return-type */ - public function getFeature(string $feature, string $version): void {} + public function getFeature(string $feature, string $version): never {} /** @tentative-return-type */ public function hasFeature(string $feature, string $version): bool {} diff --git a/ext/dom/php_dom_arginfo.h b/ext/dom/php_dom_arginfo.h index 06aa280b11df0..b27a36b5b40f3 100644 --- a/ext/dom/php_dom_arginfo.h +++ b/ext/dom/php_dom_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: dc126458345cc95e154ff578f9c24efbe25945a6 */ + * Stub hash: 1ebe9d5f974d48d81fe76641b9f1114b2aa491f8 */ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_dom_import_simplexml, 0, 1, DOMElement, 1) ZEND_ARG_TYPE_INFO(0, node, IS_OBJECT, 0) @@ -100,7 +100,7 @@ ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMNode_repl ZEND_ARG_OBJ_INFO(0, child, DOMNode, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMImplementation_getFeature, 0, 2, IS_VOID, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_DOMImplementation_getFeature, 0, 2, never, 0) ZEND_ARG_TYPE_INFO(0, feature, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, version, IS_STRING, 0) ZEND_END_ARG_INFO() From f432aa11401ea953d1557e57772f7d2312b33786 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Tue, 20 Jul 2021 00:41:07 +0200 Subject: [PATCH 3/3] Only add tentative return types where the DOM spec is compatible --- ext/dom/php_dom.stub.php | 120 +++++++++++++++++++------------------- ext/dom/php_dom_arginfo.h | 64 +++++++++----------- 2 files changed, 89 insertions(+), 95 deletions(-) diff --git a/ext/dom/php_dom.stub.php b/ext/dom/php_dom.stub.php index db1626cda3289..c3bb17243c863 100644 --- a/ext/dom/php_dom.stub.php +++ b/ext/dom/php_dom.stub.php @@ -103,8 +103,8 @@ class DOMNode public string $textContent; - /** @tentative-return-type */ - public function appendChild(DOMNode $node): DOMNode|false {} + /** @return DOMNode|false */ + public function appendChild(DOMNode $node) {} /** @tentative-return-type */ public function C14N(bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null): string|false {} @@ -112,8 +112,8 @@ public function C14N(bool $exclusive = false, bool $withComments = false, ?array /** @tentative-return-type */ public function C14NFile(string $uri, bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null): int|false {} - /** @tentative-return-type */ - public function cloneNode(bool $deep = false): DOMNode|false {} + /** @return DOMNode|false */ + public function cloneNode(bool $deep = false) {} /** @tentative-return-type */ public function getLineNo(): int {} @@ -127,8 +127,8 @@ public function hasAttributes(): bool {} /** @tentative-return-type */ public function hasChildNodes(): bool {} - /** @tentative-return-type */ - public function insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false {} + /** @return DOMNode|false */ + public function insertBefore(DOMNode $node, ?DOMNode $child = null) {} /** @tentative-return-type */ public function isDefaultNamespace(string $namespace): bool {} @@ -148,11 +148,11 @@ public function lookupPrefix(string $namespace): ?string {} /** @tentative-return-type */ public function normalize(): void {} - /** @tentative-return-type */ - public function removeChild(DOMNode $child): DOMNode|false {} + /** @return DOMNode|false */ + public function removeChild(DOMNode $child) {} - /** @tentative-return-type */ - public function replaceChild(DOMNode $node, DOMNode $child): DOMNode|false {} + /** @return DOMNode|false */ + public function replaceChild(DOMNode $node, DOMNode $child) {} } class DOMNameSpaceNode @@ -190,11 +190,11 @@ public function getFeature(string $feature, string $version): never {} /** @tentative-return-type */ public function hasFeature(string $feature, string $version): bool {} - /** @tentative-return-type */ - public function createDocumentType(string $qualifiedName, string $publicId = "", string $systemId = ""): DOMDocumentType|false {} + /** @return DOMDocumentType|false */ + public function createDocumentType(string $qualifiedName, string $publicId = "", string $systemId = "") {} - /** @tentative-return-type */ - public function createDocument(?string $namespace = null, string $qualifiedName = "", ?DOMDocumentType $doctype = null): DOMDocument|false {} + /** @return DOMDocument|false */ + public function createDocument(?string $namespace = null, string $qualifiedName = "", ?DOMDocumentType $doctype = null) {} } class DOMDocumentFragment extends DOMNode implements DOMParentNode @@ -251,8 +251,8 @@ class DOMCharacterData extends DOMNode implements DOMChildNode /** @tentative-return-type */ public function appendData(string $data): bool {} - /** @tentative-return-type */ - public function substringData(int $offset, int $count): string|false {} + /** @return string|false */ + public function substringData(int $offset, int $count) {} /** @tentative-return-type */ public function insertData(int $offset, string $data): bool {} @@ -329,11 +329,11 @@ public function getAttribute(string $qualifiedName): string {} /** @tentative-return-type */ public function getAttributeNS(?string $namespace, string $localName): string {} - /** @tentative-return-type */ - public function getAttributeNode(string $qualifiedName): DOMAttr|DOMNameSpaceNode|false {} + /** @return DOMAttr|DOMNameSpaceNode|false */ + public function getAttributeNode(string $qualifiedName) {} - /** @tentative-return-type */ - public function getAttributeNodeNS(?string $namespace, string $localName): DOMAttr|DOMNameSpaceNode|null {} + /** @return DOMAttr|DOMNameSpaceNode|null */ + public function getAttributeNodeNS(?string $namespace, string $localName) {} /** @tentative-return-type */ public function getElementsByTagName(string $qualifiedName): DOMNodeList {} @@ -353,20 +353,20 @@ public function removeAttribute(string $qualifiedName): bool {} /** @tentative-return-type */ public function removeAttributeNS(?string $namespace, string $localName): void {} - /** @tentative-return-type */ - public function removeAttributeNode(DOMAttr $attr): DOMAttr|false {} + /** @return DOMAttr|false */ + public function removeAttributeNode(DOMAttr $attr) {} - /** @tentative-return-type */ - public function setAttribute(string $qualifiedName, string $value): DOMAttr|bool {} + /** @return DOMAttr|bool */ + public function setAttribute(string $qualifiedName, string $value) {} // TODO return type shouldn't depend on the call scope /** @tentative-return-type */ public function setAttributeNS(?string $namespace, string $qualifiedName, string $value): void {} - /** @tentative-return-type */ - public function setAttributeNode(DOMAttr $attr): DOMAttr|null|false {} + /** @return DOMAttr|null|false */ + public function setAttributeNode(DOMAttr $attr) {} - /** @tentative-return-type */ - public function setAttributeNodeNS(DOMAttr $attr): DOMAttr|null|false {} + /** @return DOMAttr|null|false */ + public function setAttributeNodeNS(DOMAttr $attr) {} /** @tentative-return-type */ public function setIdAttribute(string $qualifiedName, bool $isId): void {} @@ -458,14 +458,14 @@ class DOMDocument extends DOMNode implements DOMParentNode public function __construct(string $version = "1.0", string $encoding = "") {} - /** @tentative-return-type */ - public function createAttribute(string $localName): DOMAttr|false {} + /** @return DOMAttr|false */ + public function createAttribute(string $localName) {} - /** @tentative-return-type */ - public function createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false {} + /** @return DOMAttr|false */ + public function createAttributeNS(?string $namespace, string $qualifiedName) {} - /** @tentative-return-type */ - public function createCDATASection(string $data): DOMCdataSection|false {} + /** @return DOMCdataSection|false */ + public function createCDATASection(string $data) {} /** @tentative-return-type */ public function createComment(string $data): DOMComment {} @@ -473,23 +473,23 @@ public function createComment(string $data): DOMComment {} /** @tentative-return-type */ public function createDocumentFragment(): DOMDocumentFragment {} - /** @tentative-return-type */ - public function createElement(string $localName, string $value = ""): DOMElement|false {} + /** @return DOMElement|false */ + public function createElement(string $localName, string $value = "") {} - /** @tentative-return-type */ - public function createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false {} + /** @return DOMElement|false */ + public function createElementNS(?string $namespace, string $qualifiedName, string $value = "") {} - /** @tentative-return-type */ - public function createEntityReference(string $name): DOMEntityReference|false {} + /** @return DOMEntityReference|false */ + public function createEntityReference(string $name) {} - /** @tentative-return-type */ - public function createProcessingInstruction(string $target, string $data = ""): DOMProcessingInstruction|false {} + /** @return DOMProcessingInstruction|false */ + public function createProcessingInstruction(string $target, string $data = "") {} /** @tentative-return-type */ public function createTextNode(string $data): DOMText {} /** @tentative-return-type */ - public function getElementById(string $elementId): DOMElement|null {} + public function getElementById(string $elementId): ?DOMElement {} /** @tentative-return-type */ public function getElementsByTagName(string $qualifiedName): DOMNodeList {} @@ -497,14 +497,14 @@ public function getElementsByTagName(string $qualifiedName): DOMNodeList {} /** @tentative-return-type */ public function getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList {} - /** @tentative-return-type */ - public function importNode(DOMNode $node, bool $deep = false): DOMNode|false {} + /** @return DOMNode|false */ + public function importNode(DOMNode $node, bool $deep = false) {} - /** @tentative-return-type */ - public function load(string $filename, int $options = 0): DOMDocument|bool {} + /** @return DOMDocument|bool */ + public function load(string $filename, int $options = 0) {} // TODO return type shouldn't depend on the call scope - /** @tentative-return-type */ - public function loadXML(string $source, int $options = 0): DOMDocument|bool {} + /** @return DOMDocument|bool */ + public function loadXML(string $source, int $options = 0) {} // TODO return type shouldn't depend on the call scope /** @tentative-return-type */ public function normalizeDocument(): void {} @@ -516,11 +516,11 @@ public function registerNodeClass(string $baseClass, ?string $extendedClass): bo public function save(string $filename, int $options = 0): int|false {} #ifdef LIBXML_HTML_ENABLED - /** @tentative-return-type */ - public function loadHTML(string $source, int $options = 0): DOMDocument|bool {} + /** @return DOMDocument|bool */ + public function loadHTML(string $source, int $options = 0) {} // TODO return type shouldn't depend on the call scope - /** @tentative-return-type */ - public function loadHTMLFile(string $filename, int $options = 0): DOMDocument|bool {} + /** @return DOMDocument|bool */ + public function loadHTMLFile(string $filename, int $options = 0) {} // TODO return type shouldn't depend on the call scope /** @tentative-return-type */ public function saveHTML(?DOMNode $node = null): string|false {} @@ -552,8 +552,8 @@ public function validate(): bool {} /** @tentative-return-type */ public function xinclude(int $options = 0): int|false {} - /** @tentative-return-type */ - public function adoptNode(DOMNode $node): DOMNode|false {} + /** @return DOMNode|false */ + public function adoptNode(DOMNode $node) {} /** @param DOMNode|string $nodes */ public function append(...$nodes): void {} @@ -584,8 +584,8 @@ public function isWhitespaceInElementContent(): bool {} */ public function isElementContentWhitespace(): bool {} - /** @tentative-return-type */ - public function splitText(int $offset): DOMText|false {} + /** @return DOMText|false */ + public function splitText(int $offset) {} } class DOMNamedNodeMap implements IteratorAggregate, Countable @@ -594,13 +594,13 @@ class DOMNamedNodeMap implements IteratorAggregate, Countable public int $length; /** @tentative-return-type */ - public function getNamedItem(string $qualifiedName): ?DOMNode {} + public function getNamedItem(string $qualifiedName): ?DOMNode {} // TODO DOM spec returns DOMAttr /** @tentative-return-type */ - public function getNamedItemNS(?string $namespace, string $localName): ?DOMNode {} + public function getNamedItemNS(?string $namespace, string $localName): ?DOMNode {} // TODO DOM spec returns DOMAttr /** @tentative-return-type */ - public function item(int $index): ?DOMNode {} + public function item(int $index): ?DOMNode {} // TODO DOM spec returns DOMAttr /** @tentative-return-type */ public function count(): int {} diff --git a/ext/dom/php_dom_arginfo.h b/ext/dom/php_dom_arginfo.h index b27a36b5b40f3..24841a8ef6e68 100644 --- a/ext/dom/php_dom_arginfo.h +++ b/ext/dom/php_dom_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 1ebe9d5f974d48d81fe76641b9f1114b2aa491f8 */ + * Stub hash: 9085cafc2477ac2efa9929a681251bf0f2f39879 */ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_dom_import_simplexml, 0, 1, DOMElement, 1) ZEND_ARG_TYPE_INFO(0, node, IS_OBJECT, 0) @@ -28,7 +28,7 @@ ZEND_END_ARG_INFO() #define arginfo_class_DOMChildNode_replaceWith arginfo_class_DOMParentNode_append -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMNode_appendChild, 0, 1, DOMNode, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_appendChild, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, node, DOMNode, 0) ZEND_END_ARG_INFO() @@ -47,7 +47,7 @@ ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_DOMNode_C14NFile ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, nsPrefixes, IS_ARRAY, 1, "null") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMNode_cloneNode, 0, 0, DOMNode, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_cloneNode, 0, 0, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, deep, _IS_BOOL, 0, "false") ZEND_END_ARG_INFO() @@ -62,7 +62,7 @@ ZEND_END_ARG_INFO() #define arginfo_class_DOMNode_hasChildNodes arginfo_class_DOMNode_hasAttributes -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMNode_insertBefore, 0, 1, DOMNode, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_insertBefore, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, node, DOMNode, 0) ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, child, DOMNode, 1, "null") ZEND_END_ARG_INFO() @@ -91,11 +91,11 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMNode_normalize, 0, 0, IS_VOID, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMNode_removeChild, 0, 1, DOMNode, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_removeChild, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, child, DOMNode, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMNode_replaceChild, 0, 2, DOMNode, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_replaceChild, 0, 0, 2) ZEND_ARG_OBJ_INFO(0, node, DOMNode, 0) ZEND_ARG_OBJ_INFO(0, child, DOMNode, 0) ZEND_END_ARG_INFO() @@ -107,13 +107,13 @@ ZEND_END_ARG_INFO() #define arginfo_class_DOMImplementation_hasFeature arginfo_class_DOMNode_isSupported -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMImplementation_createDocumentType, 0, 1, DOMDocumentType, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMImplementation_createDocumentType, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, publicId, IS_STRING, 0, "\"\"") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, systemId, IS_STRING, 0, "\"\"") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMImplementation_createDocument, 0, 0, DOMDocument, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMImplementation_createDocument, 0, 0, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, namespace, IS_STRING, 1, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, qualifiedName, IS_STRING, 0, "\"\"") ZEND_ARG_OBJ_INFO_WITH_DEFAULT_VALUE(0, doctype, DOMDocumentType, 1, "null") @@ -141,7 +141,7 @@ ZEND_END_ARG_INFO() #define arginfo_class_DOMCharacterData_appendData arginfo_class_DOMDocumentFragment_appendXML -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_DOMCharacterData_substringData, 0, 2, MAY_BE_STRING|MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMCharacterData_substringData, 0, 0, 2) ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0) ZEND_ARG_TYPE_INFO(0, count, IS_LONG, 0) ZEND_END_ARG_INFO() @@ -192,11 +192,11 @@ ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMElement_getAt ZEND_ARG_TYPE_INFO(0, localName, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMElement_getAttributeNode, 0, 1, DOMAttr|DOMNameSpaceNode, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMElement_getAttributeNode, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMElement_getAttributeNodeNS, 0, 2, DOMAttr|DOMNameSpaceNode, MAY_BE_NULL) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMElement_getAttributeNodeNS, 0, 0, 2) ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 1) ZEND_ARG_TYPE_INFO(0, localName, IS_STRING, 0) ZEND_END_ARG_INFO() @@ -226,11 +226,11 @@ ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMElement_remov ZEND_ARG_TYPE_INFO(0, localName, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMElement_removeAttributeNode, 0, 1, DOMAttr, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMElement_removeAttributeNode, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, attr, DOMAttr, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMElement_setAttribute, 0, 2, DOMAttr, MAY_BE_BOOL) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMElement_setAttribute, 0, 0, 2) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0) ZEND_END_ARG_INFO() @@ -241,11 +241,9 @@ ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMElement_setAt ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMElement_setAttributeNode, 0, 1, DOMAttr, MAY_BE_NULL|MAY_BE_FALSE) - ZEND_ARG_OBJ_INFO(0, attr, DOMAttr, 0) -ZEND_END_ARG_INFO() +#define arginfo_class_DOMElement_setAttributeNode arginfo_class_DOMElement_removeAttributeNode -#define arginfo_class_DOMElement_setAttributeNodeNS arginfo_class_DOMElement_setAttributeNode +#define arginfo_class_DOMElement_setAttributeNodeNS arginfo_class_DOMElement_removeAttributeNode ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMElement_setIdAttribute, 0, 2, IS_VOID, 0) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) @@ -280,18 +278,16 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument___construct, 0, 0, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_STRING, 0, "\"\"") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_createAttribute, 0, 1, DOMAttr, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_createAttribute, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, localName, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_createAttributeNS, 0, 2, DOMAttr, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_createAttributeNS, 0, 0, 2) ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 1) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_createCDATASection, 0, 1, DOMCdataSection, MAY_BE_FALSE) - ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) -ZEND_END_ARG_INFO() +#define arginfo_class_DOMDocument_createCDATASection arginfo_class_DOMCdataSection___construct ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_DOMDocument_createComment, 0, 1, DOMComment, 0) ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) @@ -300,22 +296,22 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_DOMDocument_createDocumentFragment, 0, 0, DOMDocumentFragment, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_createElement, 0, 1, DOMElement, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_createElement, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, localName, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, value, IS_STRING, 0, "\"\"") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_createElementNS, 0, 2, DOMElement, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_createElementNS, 0, 0, 2) ZEND_ARG_TYPE_INFO(0, namespace, IS_STRING, 1) ZEND_ARG_TYPE_INFO(0, qualifiedName, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, value, IS_STRING, 0, "\"\"") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_createEntityReference, 0, 1, DOMEntityReference, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_createEntityReference, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_createProcessingInstruction, 0, 1, DOMProcessingInstruction, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_createProcessingInstruction, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, target, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, data, IS_STRING, 0, "\"\"") ZEND_END_ARG_INFO() @@ -332,17 +328,17 @@ ZEND_END_ARG_INFO() #define arginfo_class_DOMDocument_getElementsByTagNameNS arginfo_class_DOMElement_getElementsByTagNameNS -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_importNode, 0, 1, DOMNode, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_importNode, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, node, DOMNode, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, deep, _IS_BOOL, 0, "false") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_load, 0, 1, DOMDocument, MAY_BE_BOOL) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_load, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_loadXML, 0, 1, DOMDocument, MAY_BE_BOOL) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_loadXML, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, source, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") ZEND_END_ARG_INFO() @@ -360,14 +356,14 @@ ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_DOMDocument_save ZEND_END_ARG_INFO() #if defined(LIBXML_HTML_ENABLED) -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_loadHTML, 0, 1, DOMDocument, MAY_BE_BOOL) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_loadHTML, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, source, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") ZEND_END_ARG_INFO() #endif #if defined(LIBXML_HTML_ENABLED) -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMDocument_loadHTMLFile, 0, 1, DOMDocument, MAY_BE_BOOL) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMDocument_loadHTMLFile, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0") ZEND_END_ARG_INFO() @@ -434,7 +430,7 @@ ZEND_END_ARG_INFO() #define arginfo_class_DOMText_isElementContentWhitespace arginfo_class_DOMNode_hasAttributes -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_DOMText_splitText, 0, 1, DOMText, MAY_BE_FALSE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMText_splitText, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0) ZEND_END_ARG_INFO() @@ -453,9 +449,7 @@ ZEND_END_ARG_INFO() #define arginfo_class_DOMNamedNodeMap_getIterator arginfo_class_DOMNodeList_getIterator -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMEntityReference___construct, 0, 0, 1) - ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0) -ZEND_END_ARG_INFO() +#define arginfo_class_DOMEntityReference___construct arginfo_class_DOMDocument_createEntityReference #define arginfo_class_DOMProcessingInstruction___construct arginfo_class_DOMAttr___construct