[swift-evolution] My personal beef with leading-dot syntax

Evan Maloney emaloney at gilt.com
Wed Apr 6 17:13:13 CDT 2016

> Agreed.  Let me ask the question differently: what value does the 
> leading `.` provide to the user of the language?

I find the leading-dot syntax to be very useful; it's a pretty clear shorthand that I'm not referencing something at global scope.

Here's a common example from our codebase:


The completion function takes an enum value of type DataTransactionResult, of which .Failed is one case. The .Failed case takes an associated value of type DataTransactionError, which has a static function called wrap() that accepts an ErrorType and returns a DataTransactionError containing it.

Although .Failed is being used here in the common enum shorthand style, being able to very quickly determine that wrap() is not a global function is helpful. Without the leading dot, some context disappears:


Now, it's a lot harder to tell what I'm dealing with.

What is 'Failed'? Is it a class with an initializer that we're passing the result of wrap(error) to? Or is it an enum case with an associated type? Further, what's wrap()? A function in the global scope? Sure looks like it!

If we got rid of the shorthand altogether, we end up with something much more verbose:


Yes, it's more explicit, but I would not necessarily argue that it's easier to read.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160406/5e4ef29b/attachment.html>

More information about the swift-evolution mailing list