У переопределенного метода есть сигнатура generi c, которая несовместима с сигнатурой generi c базового метода - PullRequest
0 голосов
/ 25 марта 2020

Я только что обновился до Xcode 11.4. Я получаю следующую ошибку:

Overridden method 'equals' has generic signature <T where T : Gradient> which is incompatible with base method's generic signature <T where T : Fill>; expected generic signature to be <T where T : Fill>

enter image description here

class Fill: Equatable {
    func equals<T>(other: T) -> Bool where T: Fill { }
}

func ==<T> (lhs: T, rhs: T) -> Bool where T: Fill {
    return lhs.equals(other: rhs)
}

class Gradient: Fill {
    override func equals<T>(other: T) -> Bool where T: Gradient { }
}

Как это изменилось?

1 Ответ

1 голос
/ 26 марта 2020

Пожалуйста, посмотрите на эту тему https://forums.swift.org/t/method-override-with-a-generic-signature-with-requirements-not-imposed-by-the-base-method/33593

Эта ошибка компиляции предотвращает будущие сбои.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...