[swift-evolution] Handling unknown cases in enums [RE: SE-0192]

Jordan Rose jordan_rose at apple.com
Fri Jan 12 12:25:45 CST 2018



> On Jan 11, 2018, at 23:30, Chris Lattner <clattner at nondot.org> wrote:
> 
> 
>> On Jan 11, 2018, at 11:15 PM, Jean-Daniel via swift-evolution <swift-evolution at swift.org> wrote:
>> 
>> A question about the new #unknown behavior. Is it intended to be used for error handling too ?
>> Will it be possible to use in catch clause ?
> 
> If we go with the #unknown approach, then yes of course it will work in catch clauses.  They are patterns, so it naturally falls out.

It will not work in catch clauses because you need to have a static type that's an enum. Catch clauses always (today…) have a static type of 'Error'.


> 
> If we go with the “unknown default:” / “unknown case:"  approach, then no, this has nothing to do with error handling.
> 
> IMO, this pivots on the desired semantics for “unknown cases in enums”: if you intentionally try to match on this, do we get a warning or error if you don’t handle all the cases?  If we can get to consensus on that point, then the design is pretty obvious IMO.

That's fair. I'm strongly in favor of a warning, though, because again, people don't edit their dependencies.

Jordan



More information about the swift-evolution mailing list