20
20
use PHPStan \PhpDocParser \Ast \PhpDoc \ThrowsTagValueNode ;
21
21
use PHPStan \Reflection \PassedByReference ;
22
22
use PHPStan \Type \ArrayType ;
23
- use PHPStan \Type \Generic \TemplateTypeFactory ;
24
- use PHPStan \Type \Generic \TemplateTypeMap ;
25
23
use PHPStan \Type \Generic \TemplateTypeVariance ;
26
24
use PHPStan \Type \IntegerType ;
27
25
use PHPStan \Type \MixedType ;
@@ -43,50 +41,12 @@ public function __construct(TypeNodeResolver $typeNodeResolver, ConstExprNodeRes
43
41
$ this ->constExprNodeResolver = $ constExprNodeResolver ;
44
42
}
45
43
46
- public function resolve (PhpDocNode $ phpDocNode , NameScope $ nameScope ): ResolvedPhpDocBlock
47
- {
48
- $ templateTags = $ this ->resolveTemplateTags ($ phpDocNode , $ nameScope );
49
- $ templateTypeScope = $ nameScope ->getTemplateTypeScope ();
50
-
51
- if ($ templateTypeScope !== null ) {
52
- $ templateTypeMap = new TemplateTypeMap (array_map (static function (TemplateTag $ tag ) use ($ templateTypeScope ): Type {
53
- return TemplateTypeFactory::fromTemplateTag ($ templateTypeScope , $ tag );
54
- }, $ templateTags ));
55
- $ nameScope = $ nameScope ->withTemplateTypeMap (
56
- new TemplateTypeMap (array_merge (
57
- $ nameScope ->getTemplateTypeMap ()->getTypes (),
58
- $ templateTypeMap ->getTypes ()
59
- ))
60
- );
61
- } else {
62
- $ templateTypeMap = TemplateTypeMap::createEmpty ();
63
- }
64
-
65
- return ResolvedPhpDocBlock::create (
66
- $ this ->resolveVarTags ($ phpDocNode , $ nameScope ),
67
- $ this ->resolveMethodTags ($ phpDocNode , $ nameScope ),
68
- $ this ->resolvePropertyTags ($ phpDocNode , $ nameScope ),
69
- $ templateTags ,
70
- $ this ->resolveExtendsTags ($ phpDocNode , $ nameScope ),
71
- $ this ->resolveImplementsTags ($ phpDocNode , $ nameScope ),
72
- $ this ->resolveUsesTags ($ phpDocNode , $ nameScope ),
73
- $ this ->resolveParamTags ($ phpDocNode , $ nameScope ),
74
- $ this ->resolveReturnTag ($ phpDocNode , $ nameScope ),
75
- $ this ->resolveThrowsTags ($ phpDocNode , $ nameScope ),
76
- $ this ->resolveDeprecatedTag ($ phpDocNode , $ nameScope ),
77
- $ this ->resolveIsDeprecated ($ phpDocNode ),
78
- $ this ->resolveIsInternal ($ phpDocNode ),
79
- $ this ->resolveIsFinal ($ phpDocNode ),
80
- $ templateTypeMap
81
- );
82
- }
83
-
84
44
/**
85
45
* @param PhpDocNode $phpDocNode
86
46
* @param NameScope $nameScope
87
47
* @return array<string|int, \PHPStan\PhpDoc\Tag\VarTag>
88
48
*/
89
- private function resolveVarTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
49
+ public function resolveVarTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
90
50
{
91
51
foreach (['@phpstan-var ' , '@psalm-var ' , '@var ' ] as $ tagName ) {
92
52
$ resolved = [];
@@ -114,7 +74,7 @@ private function resolveVarTags(PhpDocNode $phpDocNode, NameScope $nameScope): a
114
74
* @param NameScope $nameScope
115
75
* @return array<string, \PHPStan\PhpDoc\Tag\PropertyTag>
116
76
*/
117
- private function resolvePropertyTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
77
+ public function resolvePropertyTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
118
78
{
119
79
$ resolved = [];
120
80
@@ -159,7 +119,7 @@ private function resolvePropertyTags(PhpDocNode $phpDocNode, NameScope $nameScop
159
119
* @param NameScope $nameScope
160
120
* @return array<string, \PHPStan\PhpDoc\Tag\MethodTag>
161
121
*/
162
- private function resolveMethodTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
122
+ public function resolveMethodTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
163
123
{
164
124
$ resolved = [];
165
125
@@ -200,7 +160,7 @@ private function resolveMethodTags(PhpDocNode $phpDocNode, NameScope $nameScope)
200
160
/**
201
161
* @return array<string, \PHPStan\PhpDoc\Tag\ExtendsTag>
202
162
*/
203
- private function resolveExtendsTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
163
+ public function resolveExtendsTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
204
164
{
205
165
$ resolved = [];
206
166
@@ -218,7 +178,7 @@ private function resolveExtendsTags(PhpDocNode $phpDocNode, NameScope $nameScope
218
178
/**
219
179
* @return array<string, \PHPStan\PhpDoc\Tag\ImplementsTag>
220
180
*/
221
- private function resolveImplementsTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
181
+ public function resolveImplementsTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
222
182
{
223
183
$ resolved = [];
224
184
@@ -236,7 +196,7 @@ private function resolveImplementsTags(PhpDocNode $phpDocNode, NameScope $nameSc
236
196
/**
237
197
* @return array<string, \PHPStan\PhpDoc\Tag\UsesTag>
238
198
*/
239
- private function resolveUsesTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
199
+ public function resolveUsesTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
240
200
{
241
201
$ resolved = [];
242
202
@@ -256,7 +216,7 @@ private function resolveUsesTags(PhpDocNode $phpDocNode, NameScope $nameScope):
256
216
* @param NameScope $nameScope
257
217
* @return array<string, \PHPStan\PhpDoc\Tag\TemplateTag>
258
218
*/
259
- private function resolveTemplateTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
219
+ public function resolveTemplateTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
260
220
{
261
221
$ resolved = [];
262
222
@@ -288,7 +248,7 @@ private function resolveTemplateTags(PhpDocNode $phpDocNode, NameScope $nameScop
288
248
* @param NameScope $nameScope
289
249
* @return array<string, \PHPStan\PhpDoc\Tag\ParamTag>
290
250
*/
291
- private function resolveParamTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
251
+ public function resolveParamTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): array
292
252
{
293
253
$ resolved = [];
294
254
@@ -316,7 +276,7 @@ private function resolveParamTags(PhpDocNode $phpDocNode, NameScope $nameScope):
316
276
return $ resolved ;
317
277
}
318
278
319
- private function resolveReturnTag (PhpDocNode $ phpDocNode , NameScope $ nameScope ): ?\PHPStan \PhpDoc \Tag \ReturnTag
279
+ public function resolveReturnTag (PhpDocNode $ phpDocNode , NameScope $ nameScope ): ?\PHPStan \PhpDoc \Tag \ReturnTag
320
280
{
321
281
$ resolved = null ;
322
282
@@ -329,7 +289,7 @@ private function resolveReturnTag(PhpDocNode $phpDocNode, NameScope $nameScope):
329
289
return $ resolved ;
330
290
}
331
291
332
- private function resolveThrowsTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): ?\PHPStan \PhpDoc \Tag \ThrowsTag
292
+ public function resolveThrowsTags (PhpDocNode $ phpDocNode , NameScope $ nameScope ): ?\PHPStan \PhpDoc \Tag \ThrowsTag
333
293
{
334
294
$ types = array_map (function (ThrowsTagValueNode $ throwsTagValue ) use ($ nameScope ): Type {
335
295
return $ this ->typeNodeResolver ->resolve ($ throwsTagValue ->type , $ nameScope );
@@ -342,7 +302,7 @@ private function resolveThrowsTags(PhpDocNode $phpDocNode, NameScope $nameScope)
342
302
return new ThrowsTag (TypeCombinator::union (...$ types ));
343
303
}
344
304
345
- private function resolveDeprecatedTag (PhpDocNode $ phpDocNode , NameScope $ nameScope ): ?\PHPStan \PhpDoc \Tag \DeprecatedTag
305
+ public function resolveDeprecatedTag (PhpDocNode $ phpDocNode , NameScope $ nameScope ): ?\PHPStan \PhpDoc \Tag \DeprecatedTag
346
306
{
347
307
foreach ($ phpDocNode ->getDeprecatedTagValues () as $ deprecatedTagValue ) {
348
308
$ description = (string ) $ deprecatedTagValue ;
@@ -352,21 +312,21 @@ private function resolveDeprecatedTag(PhpDocNode $phpDocNode, NameScope $nameSco
352
312
return null ;
353
313
}
354
314
355
- private function resolveIsDeprecated (PhpDocNode $ phpDocNode ): bool
315
+ public function resolveIsDeprecated (PhpDocNode $ phpDocNode ): bool
356
316
{
357
317
$ deprecatedTags = $ phpDocNode ->getTagsByName ('@deprecated ' );
358
318
359
319
return count ($ deprecatedTags ) > 0 ;
360
320
}
361
321
362
- private function resolveIsInternal (PhpDocNode $ phpDocNode ): bool
322
+ public function resolveIsInternal (PhpDocNode $ phpDocNode ): bool
363
323
{
364
324
$ internalTags = $ phpDocNode ->getTagsByName ('@internal ' );
365
325
366
326
return count ($ internalTags ) > 0 ;
367
327
}
368
328
369
- private function resolveIsFinal (PhpDocNode $ phpDocNode ): bool
329
+ public function resolveIsFinal (PhpDocNode $ phpDocNode ): bool
370
330
{
371
331
$ finalTags = $ phpDocNode ->getTagsByName ('@final ' );
372
332
0 commit comments