It’s mine, yep.  It looks like it’s classifying the cast in the first pattern 
as a variable binding instead of an expression pattern.  I’ll push a fix later.

Thanks!

> On May 9, 2017, at 1:52 PM, Jordan Rose <jordan_r...@apple.com> wrote:
> 
> That looks like a bug to me, since of course the first pattern won't always 
> match. I suspect this is Robert's work on trying to make the exhaustive 
> checks better, https://github.com/apple/swift/pull/8908 
> <https://github.com/apple/swift/pull/8908>. Thanks for catching this!
> 
> Jordan
> 
> 
>> On May 9, 2017, at 07:09, Pushkar N Kulkarni via swift-dev 
>> <swift-dev@swift.org <mailto:swift-dev@swift.org>> wrote:
>> 
>> Hi there, 
>> 
>> I see a new warning message for switch statements on enums, like this one: 
>> 
>> enum Test {
>>     case one(Any)
>>     case two
>> }
>> 
>> let x: Test = .one("One")
>> switch x {
>>     case .one(let s as String): print(s)
>>     case .one: break
>>     case .two: break
>> }
>> 
>> enum.swift:9:10: warning: case is already handled by previous patterns; 
>> consider removing it
>>     case .one: break 
>> 
>> 
>> I do not see this warning with the 04-24 dev snapshot. 
>> 
>> The warning goes away with the use of the wildcard pattern in the second 
>> case:
>> 
>> switch x {
>>     case .one(let s as String): print(s)
>>     case .one(_): break
>>     case .two: break
>> }
>> 
>> 
>> I am wondering if this change is intentional, though it does make sense to 
>> me. Can someone please point me to the related commit?
>> 
>> Thanks in advance!
>> 
>> Pushkar N Kulkarni,
>> IBM Runtimes
>> 
>> Simplicity is prerequisite for reliability - Edsger W. Dijkstra
>> 
>> 
>> _______________________________________________
>> swift-dev mailing list
>> swift-dev@swift.org <mailto:swift-dev@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-dev
> 

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to