Skip to content

Commit 9fea7f4

Browse files
committed
Fixes
1 parent 47dd35c commit 9fea7f4

File tree

3 files changed

+31
-0
lines changed

3 files changed

+31
-0
lines changed

src/Psalm/Internal/Type/TypeTokenizer.php

+1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ final class TypeTokenizer
5656
'trait-string' => true,
5757
'callable-string' => true,
5858
'callable-array' => true,
59+
'callable-list' => true,
5960
'callable-object' => true,
6061
'stringable-object' => true,
6162
'pure-callable' => true,

src/Psalm/Type/Atomic.php

+16
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,22 @@ private static function createInner(
264264
new Union([$string]),
265265
]);
266266

267+
case 'callable-list':
268+
$classString = new TClassString(
269+
'object',
270+
null,
271+
false,
272+
false,
273+
false,
274+
true,
275+
);
276+
$object = new TObject(true);
277+
$string = new TNonEmptyString(true);
278+
return TKeyedArray::makeCallable([
279+
new Union([$classString, $object]),
280+
new Union([$string]),
281+
], null, true);
282+
267283
case 'list':
268284
return Type::getListAtomic(Type::getMixed(false, $from_docblock));
269285

tests/TypeCombinationTest.php

+14
Original file line numberDiff line numberDiff line change
@@ -710,6 +710,20 @@ public function providerTestValidTypeCombination(): array
710710
'callable',
711711
],
712712
],
713+
'combineCallableAndCallableList' => [
714+
'callable',
715+
[
716+
'callable',
717+
'callable-list',
718+
],
719+
],
720+
'combineCallableListAndCallable' => [
721+
'callable',
722+
[
723+
'callable-list',
724+
'callable',
725+
],
726+
],
713727
'combineCallableArrayAndArray' => [
714728
'array<array-key, mixed>',
715729
[

0 commit comments

Comments
 (0)