Re: [swift-evolution] Switch on an optional enum -- `case: nil`?

2016-05-05 Thread Eric Miller via swift-evolution
Nor I. This syntax is excellent, thanks Krzysztof. On Thu, May 5, 2016 at 9:56 AM, David Sweeris wrote: > Oh, cool! I didn’t realize this syntax existed. > > On May 5, 2016, at 10:52 AM, Krzysztof Siejkowski via swift-evolution < > swift-evolution@swift.org> wrote: > > > It doesn’t compile becau

[swift-evolution] Switch on an optional enum -- `case: nil`?

2016-05-05 Thread Eric Miller via swift-evolution
Wondering if you guys think this is a reasonable idea. I was switching on an optional enum today, and naturally gravitated towards including nil as a case: enum Coin { case heads case tails } var result: Coin? switch result { case heads: print("heads") case tails: print("tails") case nil: pr

Re: [swift-evolution] Switch on an optional enum -- `case: nil`?

2016-05-05 Thread David Sweeris via swift-evolution
Oh, cool! I didn’t realize this syntax existed. On May 5, 2016, at 10:52 AM, Krzysztof Siejkowski via swift-evolution wrote: > > It doesn’t compile because you’re switching on the Optional and trying to > pattern match it to Coin. > > It compiles right when you pattern match it to Optional: >

Re: [swift-evolution] Switch on an optional enum -- `case: nil`?

2016-05-05 Thread David Sweeris via swift-evolution
So… Is your idea that wrapping a SomeEnum in an Optional would add some “invalid” case to SomeEnum, or that switching on a SomeEnum? would be implicitly rewrite: switch result { case .heads: print("heads") case .tails: print("tails") case .none: print("not yet flipped") // exhaustive } to: switch

Re: [swift-evolution] Switch on an optional enum -- `case: nil`?

2016-05-05 Thread Ross O'Brien via swift-evolution
I was about to provide this, but Krzysztof's example is more compact than mine: enum Coin { case heads case tails } var result: Coin? switch result { case .Some(.heads): print("heads") case .Some(.tails): print("tails") case nil: print("not yet flipped") // exhaustive } On Thu, May 5,

Re: [swift-evolution] Switch on an optional enum -- `case: nil`?

2016-05-05 Thread Krzysztof Siejkowski via swift-evolution
It doesn’t compile because you’re switching on the Optional and trying to pattern match it to Coin. It compiles right when you pattern match it to Optional: switch result { case .heads?: print("heads") case .tails?: print("tails") case nil: print("not yet flipped") } Best, Krzysztof On 5 May 2