@@ -1773,6 +1773,69 @@ public function provideReturnTagsData(): Iterator
1773
1773
),
1774
1774
]),
1775
1775
];
1776
+
1777
+ yield [
1778
+ 'valid CallableTypeNode without space after "callable" ' ,
1779
+ '/** @return callable(int, string): void */ ' ,
1780
+ new PhpDocNode ([
1781
+ new PhpDocTagNode (
1782
+ '@return ' ,
1783
+ new ReturnTagValueNode (
1784
+ new CallableTypeNode (new IdentifierTypeNode ('callable ' ), [
1785
+ new CallableTypeParameterNode (new IdentifierTypeNode ('int ' ), false , false , '' , false ),
1786
+ new CallableTypeParameterNode (new IdentifierTypeNode ('string ' ), false , false , '' , false ),
1787
+ ], new IdentifierTypeNode ('void ' ), []),
1788
+ '' ,
1789
+ ),
1790
+ ),
1791
+ ]),
1792
+ ];
1793
+
1794
+ yield [
1795
+ 'valid CallableTypeNode with space after "callable" ' ,
1796
+ '/** @return callable (int, string): void */ ' ,
1797
+ new PhpDocNode ([
1798
+ new PhpDocTagNode (
1799
+ '@return ' ,
1800
+ new ReturnTagValueNode (
1801
+ new CallableTypeNode (new IdentifierTypeNode ('callable ' ), [
1802
+ new CallableTypeParameterNode (new IdentifierTypeNode ('int ' ), false , false , '' , false ),
1803
+ new CallableTypeParameterNode (new IdentifierTypeNode ('string ' ), false , false , '' , false ),
1804
+ ], new IdentifierTypeNode ('void ' ), []),
1805
+ '' ,
1806
+ ),
1807
+ ),
1808
+ ]),
1809
+ ];
1810
+
1811
+ yield [
1812
+ 'valid IdentifierTypeNode with space after "callable" turns the rest to description ' ,
1813
+ '/** @return callable (int, string) */ ' ,
1814
+ new PhpDocNode ([
1815
+ new PhpDocTagNode (
1816
+ '@return ' ,
1817
+ new ReturnTagValueNode (new IdentifierTypeNode ('callable ' ), '(int, string) ' ),
1818
+ ),
1819
+ ]),
1820
+ ];
1821
+
1822
+ yield [
1823
+ 'invalid CallableTypeNode without space after "callable" ' ,
1824
+ '/** @return callable(int, string) */ ' ,
1825
+ new PhpDocNode ([
1826
+ new PhpDocTagNode (
1827
+ '@return ' ,
1828
+ new InvalidTagValueNode ('callable(int, string) ' , new ParserException (
1829
+ '( ' ,
1830
+ 4 ,
1831
+ 20 ,
1832
+ 27 ,
1833
+ null ,
1834
+ 1 ,
1835
+ )),
1836
+ ),
1837
+ ]),
1838
+ ];
1776
1839
}
1777
1840
1778
1841
0 commit comments