Skip to content

MissingImmutableAnnotation

不変(immutable)インターフェースまたはクラスを継承するクラスが@psalm-immutable宣言も持っていない場合に発生します。

<?php
/** @psalm-immutable */
interface SomethingImmutable {
    public function someInteger() : int;
}

class MutableImplementation implements SomethingImmutable {
    private int $counter = 0;
    public function someInteger() : int {
        return ++$this->counter;
    }
}

ユーザーノート