mirror of
https://github.com/danog/psalm.git
synced 2024-12-03 10:07:52 +01:00
Fix
This commit is contained in:
parent
b62fe44982
commit
46ae91e6c1
@ -154,7 +154,7 @@ class AsyncTestCase extends BaseAsyncTestCase
|
|||||||
*/
|
*/
|
||||||
public static function assertArrayKeysAreZeroOrString(array $array, string $message = ''): void
|
public static function assertArrayKeysAreZeroOrString(array $array, string $message = ''): void
|
||||||
{
|
{
|
||||||
$isZeroOrString = /** @param mixed $key */ fn($key): bool => $key === 0 || is_string($key);
|
$isZeroOrString = /** @param mixed $key */ static fn($key): bool => $key === 0 || is_string($key);
|
||||||
$validKeys = array_filter($array, $isZeroOrString, ARRAY_FILTER_USE_KEY);
|
$validKeys = array_filter($array, $isZeroOrString, ARRAY_FILTER_USE_KEY);
|
||||||
self::assertTrue(count($array) === count($validKeys), $message);
|
self::assertTrue(count($array) === count($validKeys), $message);
|
||||||
}
|
}
|
||||||
|
@ -161,7 +161,7 @@ class CodebaseTest extends TestCase
|
|||||||
? (string)$stmt->extends->getAttribute('resolvedName')
|
? (string)$stmt->extends->getAttribute('resolvedName')
|
||||||
: '';
|
: '';
|
||||||
$storage->custom_metadata['implements'] = array_map(
|
$storage->custom_metadata['implements'] = array_map(
|
||||||
fn(Name $aspect): string => (string)$aspect->getAttribute('resolvedName'),
|
static fn(Name $aspect): string => (string)$aspect->getAttribute('resolvedName'),
|
||||||
$stmt->implements,
|
$stmt->implements,
|
||||||
);
|
);
|
||||||
$storage->custom_metadata['a'] = 'b';
|
$storage->custom_metadata['a'] = 'b';
|
||||||
|
@ -1108,7 +1108,7 @@ class ConfigTest extends TestCase
|
|||||||
* @param string $issue_name
|
* @param string $issue_name
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
fn($issue_name): string => '<' . $issue_name . ' errorLevel="suppress" />' . "\n",
|
static fn($issue_name): string => '<' . $issue_name . ' errorLevel="suppress" />' . "\n",
|
||||||
IssueHandler::getAllIssueTypes(),
|
IssueHandler::getAllIssueTypes(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -56,11 +56,10 @@ class CustomArrayMapFunctionStorageProvider implements DynamicFunctionStoragePro
|
|||||||
$custom_array_map_storage->return_type = self::createReturnType($all_expected_callables);
|
$custom_array_map_storage->return_type = self::createReturnType($all_expected_callables);
|
||||||
$custom_array_map_storage->params = [
|
$custom_array_map_storage->params = [
|
||||||
...array_map(
|
...array_map(
|
||||||
function (TCallable $expected, int $offset) {
|
static function (TCallable $expected, int $offset) {
|
||||||
$t = new Union([$expected]);
|
$t = new Union([$expected]);
|
||||||
$param = new FunctionLikeParameter('fn' . $offset, false, $t, $t);
|
$param = new FunctionLikeParameter('fn' . $offset, false, $t, $t);
|
||||||
$param->is_optional = false;
|
$param->is_optional = false;
|
||||||
|
|
||||||
return $param;
|
return $param;
|
||||||
},
|
},
|
||||||
$all_expected_callables,
|
$all_expected_callables,
|
||||||
|
@ -348,7 +348,7 @@ class DocumentationTest extends TestCase
|
|||||||
|
|
||||||
$duplicate_shortcodes = array_filter(
|
$duplicate_shortcodes = array_filter(
|
||||||
$all_shortcodes,
|
$all_shortcodes,
|
||||||
fn($issues): bool => count($issues) > 1
|
static fn($issues): bool => count($issues) > 1
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->assertEquals(
|
$this->assertEquals(
|
||||||
|
@ -64,7 +64,7 @@ class FileDiffTest extends TestCase
|
|||||||
* @param array{0: int, 1: int, 2: int, 3: int} $arr
|
* @param array{0: int, 1: int, 2: int, 3: int} $arr
|
||||||
* @return array{0: int, 1: int}
|
* @return array{0: int, 1: int}
|
||||||
*/
|
*/
|
||||||
fn(array $arr): array => [$arr[2], $arr[3]],
|
static fn(array $arr): array => [$arr[2], $arr[3]],
|
||||||
$diff[3],
|
$diff[3],
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -135,7 +135,7 @@ class FileDiffTest extends TestCase
|
|||||||
* @param array{0: int, 1: int, 2: int, 3: int} $arr
|
* @param array{0: int, 1: int, 2: int, 3: int} $arr
|
||||||
* @return array{0: int, 1: int}
|
* @return array{0: int, 1: int}
|
||||||
*/
|
*/
|
||||||
fn(array $arr): array => [$arr[2], $arr[3]],
|
static fn(array $arr): array => [$arr[2], $arr[3]],
|
||||||
$diff[3],
|
$diff[3],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -2602,7 +2602,7 @@ class TaintTest extends TestCase
|
|||||||
$this->analyzeFile($filePath, new Context(), false);
|
$this->analyzeFile($filePath, new Context(), false);
|
||||||
|
|
||||||
$actualIssueTypes = array_map(
|
$actualIssueTypes = array_map(
|
||||||
fn(IssueData $issue): string => $issue->type . '{ ' . trim($issue->snippet) . ' }',
|
static fn(IssueData $issue): string => $issue->type . '{ ' . trim($issue->snippet) . ' }',
|
||||||
IssueBuffer::getIssuesDataForFile($filePath),
|
IssueBuffer::getIssuesDataForFile($filePath),
|
||||||
);
|
);
|
||||||
self::assertSame($expectedIssuesTypes, $actualIssueTypes);
|
self::assertSame($expectedIssuesTypes, $actualIssueTypes);
|
||||||
|
@ -151,7 +151,7 @@ class TestCase extends BaseTestCase
|
|||||||
|
|
||||||
public static function assertArrayKeysAreZeroOrString(array $array, string $message = ''): void
|
public static function assertArrayKeysAreZeroOrString(array $array, string $message = ''): void
|
||||||
{
|
{
|
||||||
$isZeroOrString = /** @param mixed $key */ fn($key): bool => $key === 0 || is_string($key);
|
$isZeroOrString = /** @param mixed $key */ static fn($key): bool => $key === 0 || is_string($key);
|
||||||
$validKeys = array_filter($array, $isZeroOrString, ARRAY_FILTER_USE_KEY);
|
$validKeys = array_filter($array, $isZeroOrString, ARRAY_FILTER_USE_KEY);
|
||||||
self::assertTrue(count($array) === count($validKeys), $message);
|
self::assertTrue(count($array) === count($validKeys), $message);
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,7 @@ class TypeComparatorTest extends TestCase
|
|||||||
$basic_types['list{123}'] = true;
|
$basic_types['list{123}'] = true;
|
||||||
|
|
||||||
return array_map(
|
return array_map(
|
||||||
fn($type) => [$type],
|
static fn($type) => [$type],
|
||||||
array_keys($basic_types),
|
array_keys($basic_types),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ foreach ($GLOBALS as $key => $_) {
|
|||||||
$GLOBALS[$key] = new Exception;
|
$GLOBALS[$key] = new Exception;
|
||||||
}
|
}
|
||||||
|
|
||||||
spl_autoload_register(function() {
|
spl_autoload_register(static function () {
|
||||||
// and destroy vars again
|
// and destroy vars again
|
||||||
// this will run during scanning (?)
|
// this will run during scanning (?)
|
||||||
foreach ($GLOBALS as $key => $_) {
|
foreach ($GLOBALS as $key => $_) {
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
use React\Promise\PromiseInterface as ReactPromise;
|
use React\Promise\PromiseInterface as ReactPromise;
|
||||||
use Composer\InstalledVersions;
|
use Composer\InstalledVersions;
|
||||||
|
|
||||||
spl_autoload_register(function (string $className) {
|
spl_autoload_register(static function (string $className) {
|
||||||
$knownBadClasses = [
|
$knownBadClasses = [
|
||||||
ReactPromise::class, // amphp/amp
|
ReactPromise::class, // amphp/amp
|
||||||
ResourceBundle::class, // symfony/polyfill-php73
|
ResourceBundle::class, // symfony/polyfill-php73
|
||||||
@ -25,11 +25,9 @@ spl_autoload_register(function (string $className) {
|
|||||||
'Symfony\Component\String\s',
|
'Symfony\Component\String\s',
|
||||||
'Symfony\Component\Translation\t',
|
'Symfony\Component\Translation\t',
|
||||||
];
|
];
|
||||||
|
|
||||||
if (in_array($className, $knownBadClasses)) {
|
if (in_array($className, $knownBadClasses)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$ex = new RuntimeException('Attempted to load ' . $className);
|
$ex = new RuntimeException('Attempted to load ' . $className);
|
||||||
echo $ex->__toString() . "\n\n" . $ex->getTraceAsString() . "\n\n";
|
echo $ex->__toString() . "\n\n" . $ex->getTraceAsString() . "\n\n";
|
||||||
exit(70);
|
exit(70);
|
||||||
|
Loading…
Reference in New Issue
Block a user