File tree Expand file tree Collapse file tree 2 files changed +31
-2
lines changed
tests/PHPStan/Analyser/nsrt Expand file tree Collapse file tree 2 files changed +31
-2
lines changed Original file line number Diff line number Diff line change @@ -31,12 +31,12 @@ class DOMNode
31
31
{
32
32
33
33
/**
34
- * @var DOMNamedNodeMap|null
34
+ * @var DOMNamedNodeMap<DOMAttr> |null
35
35
*/
36
36
public $attributes;
37
37
38
38
/**
39
- * @phpstan-assert-if-true !null $this->attributes
39
+ * @phpstan-assert-if-true =DOMNamedNodeMap $this->attributes
40
40
* @return bool
41
41
*/
42
42
public function hasAttributes() {}
@@ -46,6 +46,9 @@ class DOMNode
46
46
class DOMElement extends DOMNode
47
47
{
48
48
49
+ /** @var DOMNamedNodeMap<DOMAttr> */
50
+ public $attributes;
51
+
49
52
/** @var DOMDocument */
50
53
public $ownerDocument;
51
54
Original file line number Diff line number Diff line change
1
+ <?php declare (strict_types = 1 );
2
+
3
+ namespace Bug13076 ;
4
+
5
+ use function PHPStan \Testing \assertType ;
6
+
7
+ class Foo
8
+ {
9
+ public function test (\DOMNode $ node ): void
10
+ {
11
+ if ($ node ->hasAttributes ()) {
12
+ assertType ('DOMNamedNodeMap&iterable<DOMAttr> ' , $ node ->attributes );
13
+ } else {
14
+ assertType ('(DOMNamedNodeMap&iterable<DOMAttr>)|null ' , $ node ->attributes );
15
+ }
16
+ }
17
+
18
+ public function testElement (\DOMElement $ node ): void
19
+ {
20
+ if ($ node ->hasAttributes ()) {
21
+ assertType ('DOMNamedNodeMap&iterable<DOMAttr> ' , $ node ->attributes );
22
+ } else {
23
+ assertType ('DOMNamedNodeMap&iterable<DOMAttr> ' , $ node ->attributes );
24
+ }
25
+ }
26
+ }
You can’t perform that action at this time.
0 commit comments