File tree Expand file tree Collapse file tree 2 files changed +37
-0
lines changed
tests/PHPStan/Analyser/nsrt Expand file tree Collapse file tree 2 files changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -41,6 +41,27 @@ class DOMNode
4141 */
4242 public function hasAttributes() {}
4343
44+ /**
45+ * @template TNode of DOMNode
46+ * @param TNode $node
47+ * @return __benevolent<TNode|false>
48+ */
49+ public function insertBefore(DOMNode $node, ?DOMNode $child = null) {}
50+
51+ /**
52+ * @template TNode of DOMNode
53+ * @param TNode $node
54+ * @return __benevolent<TNode|false>
55+ */
56+ public function removeChild(DOMNode $node) {}
57+
58+ /**
59+ * @template TNode of DOMNode
60+ * @param TNode $node
61+ * @return __benevolent<TNode|false>
62+ */
63+ public function appendChild(DOMNode $node) {}
64+
4465}
4566
4667class DOMElement extends DOMNode
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Bug9200 ;
4+
5+ use function PHPStan \Testing \assertType ;
6+
7+ function test (\DOMElement $ element , \DOMNode $ node ): void
8+ {
9+ assertType ('(DOMElement|false) ' , $ node ->appendChild ($ element ));
10+ assertType ('(DOMNode|false) ' , $ element ->appendChild ($ node ));
11+ assertType ('(DOMElement|false) ' , $ node ->removeChild ($ element ));
12+ assertType ('(DOMNode|false) ' , $ element ->removeChild ($ node ));
13+ assertType ('(DOMElement|false) ' , $ node ->insertBefore ($ element , $ node ));
14+ assertType ('(DOMNode|false) ' , $ node ->insertBefore ($ node , $ element ));
15+ assertType ('(DOMNode|false) ' , $ element ->insertBefore ($ node , $ node ));
16+ }
You can’t perform that action at this time.
0 commit comments