[swift-evolution] My personal beef with leading-dot syntax
Radosław Pietruszewski
radexpl at gmail.com
Tue Apr 5 02:55:46 CDT 2016
As others noted:
* the ability to say .min, .max, .blackColor(), etc is extremely useful. Swift would be a lot worse off if only enum cases got their enum types inferred, and for any other static member of a type I would have type the fully qualified name
* the leading dot disambiguates the reference for the compiler **and for the reader**. I don’t have to guess if I’m not referencing something local, or explicitly disambiguate when needed. I just say, “.foo”, and it’s clear.
* I disagree that the rules of lookup are confusing. The feature is poorly documented in official guides, but it seems pretty straightforward to me. For any context implying T, .foo means a static member T.foo. Like you said, could be subjective ¯\_(ツ)_/¯
Best,
— Radek
> On 04 Apr 2016, at 20:05, Dave Abrahams via swift-evolution <swift-evolution at swift.org> wrote:
>
>
> on Mon Apr 04 2016, Erica Sadun <swift-evolution at swift.org> asked:
>
>> Can you ping me off-list or in another thread and explain what the
>> issues are?
>
> All of the following make me uncomfortable with our leading-dot thang:
>
> * The rules for lookup don't seem obvious to me. I admit this is very
> personal/subjective.
>
> * There is some evidence that people think it means something it doesn't
> (“enum case”), as mentioned in SE-0036. That suggests it is a
> confusing feature. That confusion may be fairly harmless so far, but
> still.
>
> * The dot doesn't seem to buy enough to be worth the complexity it adds
> to the language; why not just let those names be looked up without the
> dot? You can always disambiguate with full qualification if you have
> to.
>
> * Static members generally are too verbose to access from within members
> of a type (`Self.x` doesn't work; you have to write out
> `TheFullTypeName.x`), and leading-dot doesn't give the ability to do
> so. If we're going to have a special syntax for accessing static
> members, it should *at least* solve this problem.
>
> --
> Dave
>
> _______________________________________________
> 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