On Wed, Dec 23, 2015, at 03:35 PM, Joe Groff via swift-evolution wrote:
> A slight generalization would be to allow for an arbitrary pattern in the 
> `else` clause:
> 
> guard case let .Succeed(m) = returnsResult() else case let .Failure(r) {
>        return r
> }
> 
> with the requirement that the "guard" and "else" patterns form an exhaustive 
> match when taken together. That feels nicer than special-case knowledge of 
> two-case enums, though I admit it punishes what's likely to be a common case.

Cute, but it seems a little confusing. Personally, I'd rather just stick with a 
normal switch in cases like that:

let m: MyType
switch returnsResult() {
case let .Succeed(m_): m = m_
case let .Failure(r): return r
}

-Kevin
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to