Swift: 'Hashable.hashValue' is deprecated as a protocol requirement; Swift: 'Hashable.hashValue' is deprecated as a protocol requirement; swift swift

Swift: 'Hashable.hashValue' is deprecated as a protocol requirement;


As the warning says, now you should implement the hash(into:) function instead.

func hash(into hasher: inout Hasher) {    switch self {    case .mention: hasher.combine(-1)    case .hashtag: hasher.combine(-2)    case .url: hasher.combine(-3)    case .custom(let regex): hasher.combine(regex) // assuming regex is a string, that already conforms to hashable    }}

It would be even better (in case of enums and struct) to remove the custom hash(into:) implementation (unless you need a specific implementation) as the compiler will automatically synthesize it for you.

Just make your enum conforming to it:

public enum ActiveType: Hashable {    case mention    case hashtag    case url    case custom(pattern: String)    var pattern: String {        switch self {        case .mention: return RegexParser.mentionPattern        case .hashtag: return RegexParser.hashtagPattern        case .url: return RegexParser.urlPattern        case .custom(let regex): return regex        }    }}