Swift 协议报告为';自身或相关类型要求';,当它没有';我没有

Swift 协议报告为';自身或相关类型要求';,当它没有';我没有,swift,protocols,Swift,Protocols,我有以下代码: protocol LanguageType: Hashable { var description: String { get } } extension LanguageType { var description: String { return "(Self.self)" } var hashValue: Int { return "(Self.self)".hashValue } } func ==<T: LanguageType, U:

我有以下代码:

protocol LanguageType: Hashable {
    var description: String { get }
}

extension LanguageType {
    var description: String { return "(Self.self)" }
    var hashValue: Int { return "(Self.self)".hashValue }
}

func ==<T: LanguageType, U: LanguageType>(left: T, right: U) -> Bool {
    return left.hashValue == right.hashValue
}

struct English: LanguageType { }
我得到以下错误:

关联的类型应该来自哪里?

(即使我删除了
“\(Self.Self)”
它仍然会抱怨。)

equalable
Self
作为关联的类型要求,而
LanguageType
是从
equalable
间接派生出来的,因此
LanguageType
Self
作为关联的类型要求

let english: LanguageType = English()