Почему у ограниченного протокола все еще есть требования к Self или связанные типы - PullRequest
0 голосов
/ 09 мая 2019

Рассмотрим следующий протокол со связанным типом.

protocol P1 {
    associatedtype X
}

Затем я создаю дочерний протокол, который ограничивает связанный тип: Int.

protocol P2: P1 where X == Int { 

}

А затем попытайтесь использовать его, я все еще получаю ошибку

class UsesP2 {
    //Protocol 'P2' can only be used as a generic constraint
    // because it has Self or associated type requirements
    var p2: P2!
}

Протокол 'P2' может использоваться только в качестве общего ограничения, потому что он имеет Собственные или связанные с ними требования типа

Я думал, что на этом этапе связанный тип был удовлетворен, typealias были неявно определены, и что P2 может быть когда-либо использован только с Int. P1 даже не конвертируется в P2.

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