[swift-evolution] [Pitch] Adding a Self type name shortcut for static member access

Jeremy Pereira jeremy.j.pereira at googlemail.com
Wed Apr 6 04:15:52 CDT 2016


I think I would be -1 on this.

The proposal is that there be two names, Self and self that refer to different objects but are differentiated only by the capitalisation of the first letter and these could be mixed in the same context. 

I think this would make code that uses both harder to read. If typing ‘self.dynamicType’ is too onerous, how about shortening it in a different way? Why, for instance is ‘self.' mandatory? Alternatively, why is it ‘dynamicType’ and not just ‘type’?

> On 6 Apr 2016, at 10:51, Adrian Kashivskyy via swift-evolution <swift-evolution at swift.org> wrote:
> 
> +1 for Self and the proposal.
> 
> 
> Pozdrawiam – Regards,
> Adrian Kashivskyy
> 
>> Wiadomość napisana przez Bernd Ohr (jazzbox) via swift-evolution <swift-evolution at swift.org> w dniu 06.04.2016, o godz. 09:11:
>> 
>> I am using a typealias for this:
>> 
>> struct MyStruct {
>>    private typealias _Self = MyStruct
>> 
>>    static func staticMethod() { print("staticMethod") }
>> 
>>    func instanceMethod() {
>>        _Self.staticMethod()
>>    }
>> }
>> 
>> 
>> 
>>>> On Apr 5, 2016, at 4:17 PM, Timothy Wood<tjw at me.com(mailto:tjw at me.com)>wrote:
>>>> 
>>>>> On Apr 5, 2016, at 3:04 PM, Joe Groff via swift-evolution<swift-evolution at swift.org(mailto:swift-evolution at swift.org)>wrote:
>>>>> What you're describing should be spelled `Self`, IMO. I think Tim intended `#Self` to mean the *static* type the code is declared inside (which is the same as Self unless you're in a class).
>>>> 
>>>> Yes, that is what I was aiming for. `#Self` would be a pretty much textual replacement just like #file, etc. That is, I could imaging it being used in a bunch of cases (not useful here, but just intending to enumerate the possible uses I see):
>>> Please check to ensure that the changes I just made match your expectations:
>>> 
>>> https://gist.github.com/erica/c60c7d51809889f3dfd47cdb482d6227
>>> 
>>> -- E
>>> 
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> _______________________________________________
> 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