diff --git a/ext/dom/php_dom.stub.php b/ext/dom/php_dom.stub.php index acd50792078..587694f5dfa 100644 --- a/ext/dom/php_dom.stub.php +++ b/ext/dom/php_dom.stub.php @@ -1234,7 +1234,7 @@ namespace } #endif - function dom_import_simplexml(object $node): DOMElement {} + function dom_import_simplexml(object $node): DOMAttr|DOMElement {} } namespace Dom @@ -2171,5 +2171,5 @@ namespace Dom } #endif - function import_simplexml(object $node): Element {} + function import_simplexml(object $node): Attr|Element {} } diff --git a/ext/dom/php_dom_arginfo.h b/ext/dom/php_dom_arginfo.h index 389af32f386..3d6f093eb22 100644 --- a/ext/dom/php_dom_arginfo.h +++ b/ext/dom/php_dom_arginfo.h @@ -1,11 +1,11 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: bc53676bcd060f8fd26ff6e92da4983e85c0eb83 */ + * Stub hash: 20c13a727cffb452475989a743ec29a8412a52f1 */ -ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_dom_import_simplexml, 0, 1, DOMElement, 0) +ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_dom_import_simplexml, 0, 1, DOMAttr|DOMElement, 0) ZEND_ARG_TYPE_INFO(0, node, IS_OBJECT, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_Dom_import_simplexml, 0, 1, Dom\\Element, 0) +ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_Dom_import_simplexml, 0, 1, Dom\\Attr|Dom\\Element, 0) ZEND_ARG_TYPE_INFO(0, node, IS_OBJECT, 0) ZEND_END_ARG_INFO() diff --git a/ext/dom/tests/gh16473.phpt b/ext/dom/tests/gh16473.phpt new file mode 100644 index 00000000000..f4f7308ca90 --- /dev/null +++ b/ext/dom/tests/gh16473.phpt @@ -0,0 +1,13 @@ +--TEST-- +GH-16473 (dom_import_simplexml stub is wrong) +--EXTENSIONS-- +dom +simplexml +--FILE-- +'); +$attr = $root->attributes('urn:x'); +var_dump(dom_import_simplexml($attr)->textContent); +?> +--EXPECT-- +string(3) "foo"