LessSpecificImplementedReturnType

Emitted when a class implements an interface method but its return type is less specific than the interface method return type

<?php

class A {}
class B extends A {}
interface I {
    /** @return B[] */
    public function foo();
}
class D implements I {
    /** @return A[] */
    public function foo() {
        return [new A, new A];
    }
}