@@ -108,6 +108,7 @@ protected function setUp(): void
108
108
* @dataProvider provideMixinTagsData
109
109
* @dataProvider provideRequireExtendsTagsData
110
110
* @dataProvider provideRequireImplementsTagsData
111
+ * @dataProvider provideInheritorsTagsData
111
112
* @dataProvider provideDeprecatedTagsData
112
113
* @dataProvider providePropertyTagsData
113
114
* @dataProvider provideMethodTagsData
@@ -2210,6 +2211,72 @@ public function provideRequireImplementsTagsData(): Iterator
2210
2211
];
2211
2212
}
2212
2213
2214
+ public function provideInheritorsTagsData (): Iterator
2215
+ {
2216
+ yield [
2217
+ 'OK without description ' ,
2218
+ '/** @phpstan-inheritors Foo|Bar */ ' ,
2219
+ new PhpDocNode ([
2220
+ new PhpDocTagNode (
2221
+ '@phpstan-inheritors ' ,
2222
+ new RequireImplementsTagValueNode (
2223
+ new IdentifierTypeNode ('Foo|Bar ' ),
2224
+ '' ,
2225
+ ),
2226
+ ),
2227
+ ]),
2228
+ ];
2229
+
2230
+ yield [
2231
+ 'OK with description ' ,
2232
+ '/** @phpstan-inheritors Foo|Bar optional description */ ' ,
2233
+ new PhpDocNode ([
2234
+ new PhpDocTagNode (
2235
+ '@phpstan-inheritors ' ,
2236
+ new RequireImplementsTagValueNode (
2237
+ new IdentifierTypeNode ('Foo|Bar ' ),
2238
+ 'optional description ' ,
2239
+ ),
2240
+ ),
2241
+ ]),
2242
+ ];
2243
+
2244
+ yield [
2245
+ 'OK with psalm-prefix description ' ,
2246
+ '/** @psalm-inheritors Foo|Bar optional description */ ' ,
2247
+ new PhpDocNode ([
2248
+ new PhpDocTagNode (
2249
+ '@psalm-inheritors ' ,
2250
+ new RequireImplementsTagValueNode (
2251
+ new IdentifierTypeNode ('Foo|Bar ' ),
2252
+ 'optional description ' ,
2253
+ ),
2254
+ ),
2255
+ ]),
2256
+ ];
2257
+
2258
+ yield [
2259
+ 'invalid without type and description ' ,
2260
+ '/** @phpstan-inheritors */ ' ,
2261
+ new PhpDocNode ([
2262
+ new PhpDocTagNode (
2263
+ '@phpstan-inheritors ' ,
2264
+ new InvalidTagValueNode (
2265
+ '' ,
2266
+ new ParserException (
2267
+ '*/ ' ,
2268
+ Lexer::TOKEN_CLOSE_PHPDOC ,
2269
+ 32 ,
2270
+ Lexer::TOKEN_IDENTIFIER ,
2271
+ null ,
2272
+ 1 ,
2273
+ ),
2274
+ ),
2275
+ ),
2276
+ ]),
2277
+ ];
2278
+ }
2279
+
2213
2280
public function provideDeprecatedTagsData (): Iterator
2214
2281
{
2215
2282
yield [
0 commit comments