|
14 | 14 | use PHPStan\Type\BooleanType;
|
15 | 15 | use PHPStan\Type\Constant\ConstantArrayType;
|
16 | 16 | use PHPStan\Type\Constant\ConstantBooleanType;
|
17 | | -use PHPStan\Type\Constant\ConstantStringType; |
18 | 17 | use PHPStan\Type\ConstantType;
|
19 | 18 | use PHPStan\Type\DynamicMethodReturnTypeExtension;
|
20 | 19 | use PHPStan\Type\FloatType;
|
@@ -160,9 +159,12 @@ private function generalizeTypeFromValue(Scope $scope, $value): Type
|
160 | 159 | $keyTypes = [];
|
161 | 160 | $valueTypes = [];
|
162 | 161 | foreach ($value as $key => $element) {
|
163 | | - /** @var ConstantStringType $keyType */ |
164 | 162 | $keyType = $scope->getTypeFromValue($key);
|
165 | | - $keyTypes[] = $keyType; |
| 163 | + $keyStringTypes = $keyType->getConstantStrings(); |
| 164 | + if (count($keyStringTypes) !== 1) { |
| 165 | + throw new ShouldNotHappenException(); |
| 166 | + } |
| 167 | + $keyTypes[] = $keyStringTypes[0]; |
166 | 168 | $valueTypes[] = $this->generalizeTypeFromValue($scope, $element);
|
167 | 169 | }
|
168 | 170 |
|
|
0 commit comments