8000 [PropertyInfo] Fix wrongly detected type for non-empty-array · symfony/symfony@76b7c45 · GitHub
[go: up one dir, main page]

Skip to content

Commit 76b7c45

Browse files
committed
[PropertyInfo] Fix wrongly detected type for non-empty-array
1 parent 0f3ef42 commit 76b7c45

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,7 @@ public function unionTypesProvider(): array
369369
['d', [new Type(Type::BUILTIN_TYPE_ARRAY, false, null, true, [new Type(Type::BUILTIN_TYPE_STRING), new Type(Type::BUILTIN_TYPE_INT)], [new Type(Type::BUILTIN_TYPE_ARRAY, false, null, true, [], [new Type(Type::BUILTIN_TYPE_STRING)])])]],
370370
['e', [new Type(Type::BUILTIN_TYPE_OBJECT, true, Dummy::class, true, [new Type(Type::BUILTIN_TYPE_ARRAY, false, null, true, [], [new Type(Type::BUILTIN_TYPE_STRING)])], [new Type(Type::BUILTIN_TYPE_INT), new Type(Type::BUILTIN_TYPE_ARRAY, false, null, true, [new Type(Type::BUILTIN_TYPE_INT)], [new Type(Type::BUILTIN_TYPE_STRING, false, null, true, [], [new Type(Type::BUILTIN_TYPE_OBJECT, false, DefaultValue::class)])])]), new Type(Type::BUILTIN_TYPE_OBJECT, false, ParentDummy::class)]],
371371
['f', null],
372+
['g', [new Type(Type::BUILTIN_TYPE_ARRAY, false, null, true, [], [new Type(Type::BUILTIN_TYPE_STRING), new Type(Type::BUILTIN_TYPE_INT)])]],
372373
];
373374
}
374375
}

src/Symfony/Component/PropertyInfo/Tests/Fixtures/DummyUnionType.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,9 @@ class DummyUnionType
4848
* @var self::TYPE_*|null
4949
*/
5050
public $f;
51+
52+
/**
53+
* @var non-empty-array<string|int>
54+
*/
55+
public $g;
5156
}

src/Symfony/Component/PropertyInfo/Util/PhpStanTypeHelper.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,8 @@ private function extractTypes(TypeNode $node, NameScope $nameScope): array
166166
return [new Type(Type::BUILTIN_TYPE_INT)];
167167
case 'list':
168168
return [new Type(Type::BUILTIN_TYPE_ARRAY, false, null, true, new Type(Type::BUILTIN_TYPE_INT))];
169+
case 'non-empty-array':
170+
return [new Type(Type::BUILTIN_TYPE_ARRAY, false, null, true)];
169171
case 'mixed':
170172
return []; // mixed seems to be ignored in all other extractors
171173
case 'parent':

0 commit comments

Comments
 (0)
0