@@ -1310,6 +1310,58 @@ public function provideReturnTagsData(): Iterator
1310
1310
),
1311
1311
]),
1312
1312
];
1313
+
1314
+ yield [
1315
+ 'OK variadic callable ' ,
1316
+ '/** @return \Closure(int ...$u, string): string */ ' ,
1317
+ new PhpDocNode ([
1318
+ new PhpDocTagNode (
1319
+ '@return ' ,
1320
+ new ReturnTagValueNode (
1321
+ new CallableTypeNode (
1322
+ new IdentifierTypeNode ('\Closure ' ),
1323
+ [
1324
+ new CallableTypeParameterNode (
1325
+ new IdentifierTypeNode ('int ' ),
1326
+ false ,
1327
+ true ,
1328
+ '$u ' ,
1329
+ false
1330
+ ),
1331
+ new CallableTypeParameterNode (
1332
+ new IdentifierTypeNode ('string ' ),
1333
+ false ,
1334
+ false ,
1335
+ '' ,
1336
+ false
1337
+ ),
1338
+ ],
1339
+ new IdentifierTypeNode ('string ' )
1340
+ ),
1341
+ ''
1342
+ )
1343
+ ),
1344
+ ]),
1345
+ ];
1346
+
1347
+ yield [
1348
+ 'invalid variadic callable ' ,
1349
+ '/** @return \Closure(...int, string): string */ ' ,
1350
+ new PhpDocNode ([
1351
+ new PhpDocTagNode (
1352
+ '@return ' ,
1353
+ new InvalidTagValueNode (
1354
+ '\Closure(...int, string): string ' ,
1355
+ new ParserException (
1356
+ '( ' ,
1357
+ Lexer::TOKEN_OPEN_PARENTHESES ,
1358
+ 20 ,
1359
+ Lexer::TOKEN_HORIZONTAL_WS
1360
+ )
1361
+ )
1362
+ ),
1363
+ ]),
1364
+ ];
1313
1365
}
1314
1366
1315
1367
@@ -2104,10 +2156,14 @@ public function provideSingleLinePhpDocData(): Iterator
2104
2156
new PhpDocNode ([
2105
2157
new PhpDocTagNode (
2106
2158
'@var ' ,
2107
- new VarTagValueNode (
2108
- new IdentifierTypeNode ('callable ' ),
2109
- '' ,
2110
- '(int) '
2159
+ new InvalidTagValueNode (
2160
+ 'callable(int) ' ,
2161
+ new ParserException (
2162
+ '( ' ,
2163
+ Lexer::TOKEN_OPEN_PARENTHESES ,
2164
+ 17 ,
2165
+ Lexer::TOKEN_HORIZONTAL_WS
2166
+ )
2111
2167
)
2112
2168
),
2113
2169
]),
@@ -4076,14 +4132,14 @@ public function provideDescriptionWithOrWithoutHtml(): Iterator
4076
4132
new PhpDocNode ([
4077
4133
new PhpDocTagNode (
4078
4134
'@return ' ,
4079
- new ReturnTagValueNode (
4080
- new GenericTypeNode (
4081
- new IdentifierTypeNode ( ' Foo ' ),
4082
- [
4083
- new IdentifierTypeNode ( ' strong ' ) ,
4084
- ]
4085
- ),
4086
- ' Important description '
4135
+ new InvalidTagValueNode (
4136
+ ' Foo <strong>Important description ' ,
4137
+ new ParserException (
4138
+ ' Important ' ,
4139
+ Lexer:: TOKEN_IDENTIFIER ,
4140
+ 27 ,
4141
+ Lexer:: TOKEN_HORIZONTAL_WS
4142
+ )
4087
4143
)
4088
4144
),
4089
4145
]),
0 commit comments