> On Jan 12, 2018, at 22:49, Chris Lattner <clatt...@nondot.org> wrote:
> 
> 
>> On Jan 12, 2018, at 3:08 PM, Jordan Rose <jordan_r...@apple.com> wrote:
>> 
>> Okay, I went back to `unknown case` in the proposal, but mentioned Chris's 
>> point very specifically: if the compiler emits an error, we should go with 
>> `case #unknown` instead. (I'm very strongly in the "warning" camp, though.)
> 
> Thanks!
> 
> Out of curiosity, why not “unknown default:”?  The “warning” behavior is a 
> customization of default, so this seems like a more logical model.  It also 
> fits into the existing Swift grammar, unlike “unknown case:” which requires 
> adding a new special case production.

I'm not sure how this fits more into the existing grammar. Both of them require 
custom parsing with one token's worth of lookahead. You're right that they 
suggest different natural modelings in the AST, but that's an implementation 
detail.

To me, `unknown case` is more meaningful than `unknown default`: it matches 
cases (as in, enum elements declared with `case`) that the developer doesn't 
know about. "unknown default" is talking about two different things; the 
"default" part talks about the switch and the code that will be executed, while 
"unknown" is talking about the input. But this isn't something I feel too 
strongly about; it will go to review, people will express their opinions, and 
then you and the rest of the core team will pick one name or the other based on 
feedback.

(It's also shorter, which gives it 0.3 extra aesthetic points. But unlike 
attributes or modifiers, it's less common to put things on the same line as 
switch cases, so that matters a lot less.)

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

Reply via email to