> On 31 Jan 2017, at 01:59, Joe Groff via swift-evolution > <[email protected]> wrote: > > >> On Jan 30, 2017, at 11:42 AM, Austin Zheng via swift-evolution >> <[email protected]> wrote: >> >> The reason Swift works like this is because you can assign a function value >> (independently of calling it) to a variable. So there aren't two separate >> namespaces separating function names and variable names. > > To be honest, I would say that there's no "reason" for this, except as > lingering effects of our early "functions have simple names, and arguments > have labeled tuple type" model. If we had originally implemented the language > with its current (at least aspirational) Smalltalk-ish compound-names model, > we probably would have ended up allowing this, since the var and func do > formally have different names. The ability to reference a function by only > the first segment of its name is likewise legacy of the original model, > though it happens to be useful since good naming hygiene encourages different > base names for different things to begin with.
Is there a reason we couldn't push a proposal forward to have the compiler prefer function identifiers when the identifier is followed by a function call syntax? It would be a breaking change, but I'd wager it'd be quite rare: at least rarer than the amount of times this problem has bitten me since Swift 3's grand renaming, forcing me to `self.` prefix the function call (when I can and it's an instance function). > -Joe > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
