@@ -115,7 +115,7 @@ final class TypeResolver
115
115
* @var array<string, string> List of recognized keywords and unto which Value Object they map
116
116
* @psalm-var array<string, class-string<Type>>
117
117
*/
118
- private array $ keywords = [
118
+ private $ keywords = [
119
119
'string ' => String_::class,
120
120
'class-string ' => ClassString::class,
121
121
'interface-string ' => InterfaceString::class,
@@ -159,12 +159,21 @@ final class TypeResolver
159
159
'non-empty-list ' => NonEmptyList::class,
160
160
];
161
161
162
- /** @psalm-readonly */
163
- private FqsenResolver $ fqsenResolver ;
164
- /** @psalm-readonly */
165
- private TypeParser $ typeParser ;
166
- /** @psalm-readonly */
167
- private Lexer $ lexer ;
162
+ /**
163
+ * @psalm-readonly
164
+ * @var FqsenResolver
165
+ */
166
+ private $ fqsenResolver ;
167
+ /**
168
+ * @psalm-readonly
169
+ * @var TypeParser
170
+ */
171
+ private $ typeParser ;
172
+ /**
173
+ * @psalm-readonly
174
+ * @var Lexer
175
+ */
176
+ private $ lexer ;
168
177
169
178
/**
170
179
* Initializes this TypeResolver with the means to create and resolve Fqsen objects.
@@ -227,11 +236,13 @@ public function createType(?TypeNode $type, Context $context): Type
227
236
case ArrayShapeNode::class:
228
237
return new ArrayShape (
229
238
...array_map (
230
- fn (ArrayShapeItemNode $ item ) => new ArrayShapeItem (
231
- (string ) $ item ->keyName ,
232
- $ this ->createType ($ item ->valueType , $ context ),
233
- $ item ->optional
234
- ),
239
+ function (ArrayShapeItemNode $ item ) use ($ context ): ArrayShapeItem {
240
+ return new ArrayShapeItem (
241
+ (string ) $ item ->keyName ,
242
+ $ this ->createType ($ item ->valueType , $ context ),
243
+ $ item ->optional
244
+ );
245
+ },
235
246
$ type ->items
236
247
)
237
248
);
@@ -252,7 +263,7 @@ public function createType(?TypeNode $type, Context $context): Type
252
263
return new Intersection (
253
264
array_filter (
254
265
array_map (
255
- function (TypeNode $ nestedType ) use ($ context ) {
266
+ function (TypeNode $ nestedType ) use ($ context ): Type {
256
267
$ type = $ this ->createType ($ nestedType , $ context );
257
268
if ($ type instanceof AggregatedType) {
258
269
return new Expression ($ type );
@@ -274,7 +285,7 @@ function (TypeNode $nestedType) use ($context) {
274
285
return new Compound (
275
286
array_filter (
276
287
array_map (
277
- function (TypeNode $ nestedType ) use ($ context ) {
288
+ function (TypeNode $ nestedType ) use ($ context ): Type {
278
289
$ type = $ this ->createType ($ nestedType , $ context );
279
290
if ($ type instanceof AggregatedType) {
280
291
return new Expression ($ type );
@@ -343,16 +354,15 @@ private function createFromGeneric(GenericTypeNode $type, Context $context): Typ
343
354
throw new RuntimeException ('int<min,max> has not the correct format ' );
344
355
}
345
356
346
- return new IntegerRange (
347
- (string ) $ type ->genericTypes [0 ],
348
- (string ) $ type ->genericTypes [1 ],
349
- );
357
+ return new IntegerRange ((string ) $ type ->genericTypes [0 ], (string ) $ type ->genericTypes [1 ]);
350
358
351
359
case 'iterable ' :
352
360
return new Iterable_ (
353
361
...array_reverse (
354
362
array_map (
355
- fn (TypeNode $ genericType ) => $ this ->createType ($ genericType , $ context ),
363
+ function (TypeNode $ genericType ) use ($ context ): Type {
364
+ return $ this ->createType ($ genericType , $ context );
365
+ },
356
366
$ type ->genericTypes
357
367
)
358
368
)
@@ -368,7 +378,9 @@ private function createFromGeneric(GenericTypeNode $type, Context $context): Typ
368
378
$ collectionType ->getFqsen (),
369
379
...array_reverse (
370
380
array_map (
371
- fn (TypeNode $ genericType ) => $ this ->createType ($ genericType , $ context ),
381
+ function (TypeNode $ genericType ) use ($ context ): Type {
382
+ return $ this ->createType ($ genericType , $ context );
383
+ },
372
384
$ type ->genericTypes
373
385
)
374
386
)
@@ -378,21 +390,18 @@ private function createFromGeneric(GenericTypeNode $type, Context $context): Typ
378
390
379
391
private function createFromCallable (CallableTypeNode $ type , Context $ context ): Callable_
380
392
{
381
- return new Callable_ (
382
- array_map (
383
- function (CallableTypeParameterNode $ param ) use ($ context ) {
384
- return new CallableParameter (
385
- $ this ->createType ($ param ->type , $ context ),
386
- $ param ->parameterName !== '' ? trim ($ param ->parameterName , '$ ' ) : null ,
387
- $ param ->isReference ,
388
- $ param ->isVariadic ,
389
- $ param ->isOptional
390
- );
391
- },
392
- $ type ->parameters
393
- ),
394
- $ this ->createType ($ type ->returnType , $ context ),
395
- );
393
+ return new Callable_ (array_map (
394
+ function (CallableTypeParameterNode $ param ) use ($ context ): CallableParameter {
395
+ return new CallableParameter (
396
+ $ this ->createType ($ param ->type , $ context ),
397
+ $ param ->parameterName !== '' ? trim ($ param ->parameterName , '$ ' ) : null ,
398
+ $ param ->isReference ,
399
+ $ param ->isVariadic ,
400
+ $ param ->isOptional
401
+ );
402
+ },
403
+ $ type ->parameters
404
+ ), $ this ->createType ($ type ->returnType , $ context ));
396
405
}
397
406
398
407
private function createFromConst (ConstTypeNode $ type , Context $ context ): Type
@@ -542,7 +551,9 @@ private function createArray(array $typeNodes, Context $context): Array_
542
551
{
543
552
$ types = array_reverse (
544
553
array_map (
545
- fn (TypeNode $ node ) => $ this ->createType ($ node , $ context ),
554
+ function (TypeNode $ node ) use ($ context ): Type {
555
+ return $ this ->createType ($ node , $ context );
556
+ },
546
557
$ typeNodes
547
558
)
548
559
);
@@ -596,7 +607,7 @@ private function tryParseRemainingCompoundTypes(TokenIterator $tokenIterator, Co
596
607
'phpdocumentor/type-resolver ' ,
597
608
'https://github.com/phpDocumentor/TypeResolver/issues/184 ' ,
598
609
'Legacy nullable type detected, please update your code as
599
- you are using nullable types in a docblock. support will be removed in v2.0.0 ',
610
+ you are using nullable types in a docblock. support will be removed in v2.0.0 '
600
611
);
601
612
}
602
613
0 commit comments