1
class A
{
    private ?string $x = null;

    public function getX(): ?null
    {
        return $this->x;
    }
}

class B
{
    public function __construct(string $y)
    {
        // Property initialization...
    }
}

$a = new A();
if ($a->getX() !== null) {
    $b = new B($a->getX());
}

对于此代码片段,psalm 将返回类似PossiblyNullOperand或类似的错误。我知道这是一种预期的行为,可以像这样修复:

$a = new A();
if (($x = $a->getX()) !== null) {
    $b = new B($x);
}

但是在 psalm 中是否有一个配置参数,它会忽略这些错误,比如 getter 总是返回相同的结果?

诗篇版本:4.18.x

4

1 回答 1

2

诗篇需要知道函数有一致的返回值。

这是你可以用@psalm-mutation-free 描述的东西: https ://psalm.dev/r/e3906e5985

于 2022-01-28T22:52:06.650 回答