I encounter this error today. "matching a protocol value in multiple
patterns is not yet supported; use separate cases instead"
Sample code:
import Foundation
protocol NameProtocol {
var name:String { get }
}
struct Cat:NameProtocol {
let name:String
}
struct Dog:NameProtocol {
let name: String
}
enum AnimalType {
case catType(cat:NameProtocol)
case dogType(dog:NameProtocol)
}
struct Animal {
let type:AnimalType
func printName() {
switch type {
case .catType(let animal), // matching a protocol value in multiple
patterns is not yet supported; use separate cases instead
.dogType(let animal):
print(animal.name)
}
}
}
let cat = Cat(name: "kitty")
let catType = AnimalType.catType(cat: cat)
let animal = Animal(type: catType)
animal.printName()
I am wondering which proposal this is? And will it be implemented in Swift
4.0? I search the error as keywords, but didn't get the expected results.
Zhao Xin
_______________________________________________
swift-users mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users