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> 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 > https://lists.swift.org/mailman/listinfo/swift-dev
_______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev