Skip to content

Commit 81095e8

Browse files
committed
Fix 13365
1 parent c0e6f0e commit 81095e8

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

stubs/dom.stub

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class DOMNode
4646
class DOMElement extends DOMNode
4747
{
4848

49-
/** @var DOMNamedNodeMap */
49+
/** @var DOMNamedNodeMap&iterable<DOMAttr> */
5050
public $attributes;
5151

5252
/** @var DOMDocument */

tests/PHPStan/Analyser/nsrt/bug-13076.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ public function test(\DOMNode $node): void
1818
public function testElement(\DOMElement $node): void
1919
{
2020
if ($node->hasAttributes()) {
21-
assertType('DOMNamedNodeMap', $node->attributes);
21+
assertType('DOMNamedNodeMap&iterable<DOMAttr>', $node->attributes);
2222
} else {
23-
assertType('DOMNamedNodeMap', $node->attributes);
23+
assertType('DOMNamedNodeMap&iterable<DOMAttr>', $node->attributes);
2424
}
2525
}
2626
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php declare(strict_types = 1);
2+
3+
namespace Bug13365;
4+
5+
use function PHPStan\Testing\assertType;
6+
7+
class Foo
8+
{
9+
public function test(\DOMElement $element): void
10+
{
11+
foreach ($element->attributes ?? [] as $attr) {
12+
assertType('DOMAttr', $attr);
13+
}
14+
}
15+
}

0 commit comments

Comments
 (0)