> On Apr 5, 2016, at 10:06 AM, Joe Groff via swift-evolution > <swift-evolution@swift.org> wrote: > >> >> On Apr 5, 2016, at 7:34 AM, Timothy Wood via swift-evolution >> <swift-evolution@swift.org> wrote: >> >> >>> On Apr 4, 2016, at 7:13 PM, Joe Groff via swift-evolution >>> <swift-evolution@swift.org> wrote: >>>> Would using another word or symbol fix that problem? >>> >>> My preference would be for there to be only one Self, and have it always be >>> the dynamic type of 'self'. Some people disagree, but I don't think it's >>> all that onerous to have to write ClassName.foo if that's really what you >>> specifically mean. >> >> I would agree that Self should remain the dynamic version, but adding >> StaticSelf (however it is spelled) adds the safety of being able to refactor >> code w/o forgetting to rename an explicit class name. It adds the ability to >> more clearly express what you mean (“the containing class/struct, whatever >> it happens to be”), and it would reduce effort while reading code (in that >> you could see quickly that it was StaticSelf instead of having to look to >> see whether it was the same name as the enclosing type every time you read >> the code). >> >> My support for StaticSelf isn’t at all about it being too hard to type >> ClassName.foo the first time, but about being able to read and maintain code >> after the fact. > > I think you have a good point with your `#Self` idea—there's definitely an > analogy there to other magic constants like #function.
This also falls nicely into my list of "debug literals we discussed on-list as wanting to see but did nothing about". (I would also like to see #function upgraded to use full gregorized naming with arguments. ) -- E > >> And, of course, the argument that writing ClassName.foo isn’t onerous is >> dangerously close to an argument for dropping “.foo” with a type inferred by >> the call site... =) > > From my own experience with C++11, if it weren't for code completion, having > to utter 'EnumName::Case' over and over again when working with `enum > class`es would drive me up the wall. > > -Joe > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org <mailto:swift-evolution@swift.org> > https://lists.swift.org/mailman/listinfo/swift-evolution > <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution