1
0
mirror of https://github.com/danog/psalm.git synced 2025-01-22 13:51:54 +01:00

Merge pull request #10464 from danog/fix_10460

Fix #10460
This commit is contained in:
orklah 2023-12-07 17:37:10 +01:00 committed by GitHub
commit bc71da47e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 2 deletions

View File

@ -216,8 +216,8 @@ final class ConstantTypeResolver
return new TArray([Type::getArrayKey(), Type::getMixed()]);
}
foreach ($spread_array->properties as $spread_array_type) {
$properties[$auto_key++] = $spread_array_type;
foreach ($spread_array->properties as $k => $spread_array_type) {
$properties[is_string($k) ? $k : $auto_key++] = $spread_array_type;
}
continue;
}

View File

@ -1280,6 +1280,29 @@ class ArrayAssignmentTest extends TestCase
'ignored_issues' => [],
'php_version' => '8.1',
],
'constantArraySpreadWithString' => [
'code' => '<?php
class BaseClass {
public const KEYS = [
"a" => "a",
"b" => "b",
];
}
class ChildClass extends BaseClass {
public const A = [
...parent::KEYS,
"c" => "c",
];
}
$a = ChildClass::A;',
'assertions' => [
'$a===' => "array{a: 'a', b: 'b', c: 'c'}",
],
'ignored_issues' => [],
'php_version' => '8.1',
],
'listPropertyAssignmentAfterIsset' => [
'code' => '<?php
class Collection {