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:
commit
4ea41cb69a
@ -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,
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user