Предупреждение PhpStrom о неправильном типе возврата с использованием признака

#php #traits

Вопрос:

У меня есть два класса признаков: TournamentTrait и TournamentUtilTrait для уменьшения дублирования кода. Один из методов, возвращающих массив турнирных трасс

 trait TournamentUtilTrait {
     /**
     * @param $itemId
     * @return TournamentTrait[]
     */
    public static function getByTournamentId($itemId): array {
        $c = get_called_class();
        return DbUtil::getAll(call_user_func(array($c::QUERIES_NAME, 'getByTournamentId'), $itemId), $c::CLASS_NAME);
    }
}
 

Но у меня есть класс, который вызывает getByTournamentId, но должен возвращать другой тип:

     /**
     * @return TournamentCategory[]
     * @throws Exception
     */
    function getTournamentCategories() {
        if (!isset($this->tournamentCategories))
            $this->tournamentCategories= TournamentTournamentCategoryUtil::getByTournamentId($this->getId());
        return $this->tournamentCategories;
    }
 

И TournamentCategoryУтил, используя признак, и TournamentCategory, используя признак

 class TournamentCategoryUtil implements TournamentCategoryConstants {

    use TournamentUtilTrait;

}
 
 class TournamentCategory implements TournamentCategoryConstants {

    use TournamentTrait;

}
 

и в данный момент я получаю такое предупреждение:

Предупреждение:(267, 9) Ожидается, что возвращаемое значение будет » TournamentCategory []», «TournamentTrait[]» .