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
41
41
*/
42
42
public function hasAttributes() {}
43
43
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
+
44
65
}
45
66
46
67
class 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