mirror of
https://github.com/danog/psalm.git
synced 2024-12-02 09:37:59 +01:00
scientific and underscore notation should be quoted too, since they won't be type juggled
This commit is contained in:
parent
cd302f040b
commit
1bfa684d7f
@ -720,11 +720,19 @@ class TKeyedArray extends Atomic
|
|||||||
$quote = true;
|
$quote = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (preg_match('/^[1-9][0-9]*_([0-9]+_)*[0-9]+$/', $name)) {
|
||||||
|
$quote = true;
|
||||||
|
}
|
||||||
|
|
||||||
// 08 should be quoted since it's numeric but it's handled as string and not cast to int
|
// 08 should be quoted since it's numeric but it's handled as string and not cast to int
|
||||||
if (preg_match('/^0[0-9]+$/', $name)) {
|
if (preg_match('/^0[0-9]+$/', $name)) {
|
||||||
$quote = true;
|
$quote = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (preg_match('/^[0-9]+e-?[0-9]+$/', $name)) {
|
||||||
|
$quote = true;
|
||||||
|
}
|
||||||
|
|
||||||
if ($quote) {
|
if ($quote) {
|
||||||
$name = '\'' . str_replace("\n", '\n', addslashes($name)) . '\'';
|
$name = '\'' . str_replace("\n", '\n', addslashes($name)) . '\'';
|
||||||
}
|
}
|
||||||
|
@ -193,6 +193,8 @@ class ArrayKeysTest extends TestCase
|
|||||||
// see https://github.com/php/php-src/issues/9029#issuecomment-1186226676
|
// see https://github.com/php/php-src/issues/9029#issuecomment-1186226676
|
||||||
$e = ["+15" => "a"];
|
$e = ["+15" => "a"];
|
||||||
$f = ["015" => "a"];
|
$f = ["015" => "a"];
|
||||||
|
$g = ["1e2" => "a"];
|
||||||
|
$h = ["1_0" => "a"];
|
||||||
',
|
',
|
||||||
'assertions' => [
|
'assertions' => [
|
||||||
'$a===' => "array{15: 'a'}",
|
'$a===' => "array{15: 'a'}",
|
||||||
@ -201,6 +203,8 @@ class ArrayKeysTest extends TestCase
|
|||||||
'$d===' => "array{-15: 'a'}",
|
'$d===' => "array{-15: 'a'}",
|
||||||
'$e===' => "array{'+15': 'a'}",
|
'$e===' => "array{'+15': 'a'}",
|
||||||
'$f===' => "array{'015': 'a'}",
|
'$f===' => "array{'015': 'a'}",
|
||||||
|
'$g===' => "array{'1e2': 'a'}",
|
||||||
|
'$h===' => "array{'1_0': 'a'}",
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
Loading…
Reference in New Issue
Block a user