Это просто невозможно в данный момент. Одним из решений может быть создание двух разных расширений.
extension Protocol where Self: ClassA {
func method() {
commonMethod()
}
}
extension Protocol where Self: ClassB {
func method() {
commonMethod()
}
}
private func commonMethod() {
// do here your stuff
}
Или создать общий протокол, предполагая, что ClassA
и ClassB
соответствуют этому.
protocol CommonProtocol {}
class ClassA: Protocol, CommonProtocol {}
class ClassB: Protocol, CommonProtocol {}
extension Protocol where Self: CommonProtocol {
func method() {
// your stuff
}
}