[swift-evolution] Proposal: pattern match based on associated value(s) only

Brent Royal-Gordon brent at architechies.com
Mon Feb 22 21:11:32 CST 2016


> For example:
> 
> enum Color {
> 	...
> }
> 
> enum Vehicle {
> 	case Car(Color)
> 	case Motorcycle(Color)
> 	...
> }
> 
> switch vehicle {
> 	case _(.Red): … // pattern match based on associated value only
> }

As usual, Amir: 

1. Why do you want this feature?

2. What's actually wrong with the status quo?

3. Can you talk about a non-toy example you've encountered where it would have made your code better?

4. Can you talk about the proposed design in a little more detail? Are there weird edge cases, and how would you handle them? (In the case of this feature, here's one I see: Suppose you have two different associated value types but they both have a .Red case. What happens then?)

A half-dozen-word subject line and a code example simply aren't enough to evaluate a proposal. Without knowing exactly what you're proposing and why you think it's a good idea, we can't really evaluate it properly.

-- 
Brent Royal-Gordon
Architechies



More information about the swift-evolution mailing list