[swift-evolution] [Pitch] Allow use of the name "default" for enum cases and function names

E. Maloney emaloney at gilt.com
Fri Jun 17 16:57:11 CDT 2016


It looks like it’s not-quite-done for enum cases in Xcode 8: You can’t declare an enum with a case named “default” without escaping the name. However, it looks like you can refer to an enum case named “default” using simply “.default”, which I didn’t realize. (I had mistakenly assumed the escaping rule would be consistent between the enum declaration and the use-site. Silly me.)

Either way, it would be great if you could use “default” as a name universally, especially since it’s a pretty common name to want to use.


> On Jun 17, 2016, at 1:50 PM, Jacob Bandes-Storch <jtbandes at gmail.com> wrote:
> 
> Isn't this already done, at least for enum cases? I'm pretty sure I've seen discussion of this before, and I thought it might've gotten implemented.
> On Fri, Jun 17, 2016 at 1:45 PM E. Maloney via swift-evolution <swift-evolution at swift.org> wrote:
> While upgrading to Swift 3, I noticed that I had a few enums with cases named .Default that, after being converted to lowercase, now need to be rendered using the ugly .`default` notation.
> 
> I also noticed something similar while reading the docs for NotificationCenter (the NSNotificationCenter replacement, that is, not the NotificationCenter that governs the notification center UI); “default” can’t be used as a function name without escaping, so the declaration is:
> 
> class func `default`()
> 
> It seems to me that in the case of function names and enum cases, the parser should be able to unambiguously distinguish between the Swift keyword “default” and a user-defined name “default”, since IIRC the keyword “default” can only be used in parameter lists for generated headers and as the last item in a switch statement.
> 
> (Perhaps this is also another argument in favor of using “case _:” in place of “default:” in a switch statement.)
> 
> What do you think? Is there any reason this *wouldn’t* be feasible?
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution



More information about the swift-evolution mailing list