1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-30 04:39:00 +01:00

Merge branch '5.23.x' into 5.x

This commit is contained in:
Bruce Weirdan 2024-03-11 21:34:28 +01:00
commit 4ea41cb69a
No known key found for this signature in database
GPG Key ID: CFC3AAB181751B0D
2 changed files with 31 additions and 1 deletions

View File

@ -789,7 +789,7 @@ final class AtomicStaticCallAnalyzer
}
}
if (!$callstatic_method_exists || $class_storage->hasSealedMethods($config)) {
if ($naive_method_exists || !$callstatic_method_exists || $class_storage->hasSealedMethods($config)) {
$does_method_exist = MethodAnalyzer::checkMethodExists(
$codebase,
$method_id,

View File

@ -90,6 +90,36 @@ class AssertAnnotationTest extends TestCase
$this->analyzeFile('somefile.php', new Context());
}
public function testAssertsAllongCallStaticMethodWork(): void
{
$this->addFile(
'somefile.php',
'<?php
class ImportedAssert
{
/** @psalm-assert non-empty-string $b */
public static function notEmptyStrOnly(string $b): void
{
if ("" === $b) throw new \Exception("");
}
public function __callStatic() {}
}
/** @return non-empty-string */
function returnNonEmpty(string $b): string
{
ImportedAssert::notEmptyStrOnly($b);
return $b;
}
',
);
$this->analyzeFile('somefile.php', new Context());
}
public function testAssertInvalidDocblockMessageDoesNotIncludeTrace(): void
{
$this->expectException(CodeException::class);