Skip to content

Commit dde139f

Browse files
committed
Add more PrinterTest cases for list shapes
1 parent 35b60c2 commit dde139f

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

tests/PHPStan/Printer/PrinterTest.php

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1812,6 +1812,58 @@ public function enterNode(Node $node)
18121812

18131813
},
18141814
];
1815+
1816+
yield [
1817+
'/** @return list{int, ...} */',
1818+
'/** @return list{int} */',
1819+
new class extends AbstractNodeVisitor {
1820+
1821+
public function enterNode(Node $node)
1822+
{
1823+
if ($node instanceof ArrayShapeNode) {
1824+
$node->sealed = true;
1825+
}
1826+
1827+
return $node;
1828+
}
1829+
1830+
},
1831+
];
1832+
1833+
yield [
1834+
'/** @return list{int, ...} */',
1835+
'/** @return list{int, ...<string>} */',
1836+
new class extends AbstractNodeVisitor {
1837+
1838+
public function enterNode(Node $node)
1839+
{
1840+
if ($node instanceof ArrayShapeNode) {
1841+
$node->unsealedType = new ArrayShapeUnsealedTypeNode(new IdentifierTypeNode('string'), null);
1842+
}
1843+
1844+
return $node;
1845+
}
1846+
1847+
},
1848+
];
1849+
1850+
yield [
1851+
'/** @return list{int, ...<string>} */',
1852+
'/** @return list{int} */',
1853+
new class extends AbstractNodeVisitor {
1854+
1855+
public function enterNode(Node $node)
1856+
{
1857+
if ($node instanceof ArrayShapeNode) {
1858+
$node->sealed = true;
1859+
$node->unsealedType = null;
1860+
}
1861+
1862+
return $node;
1863+
}
1864+
1865+
},
1866+
];
18151867
}
18161868

18171869
/**

0 commit comments

Comments
 (0)