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

Dave Abrahams dabrahams at apple.com
Wed Apr 6 11:12:03 CDT 2016


on Wed Apr 06 2016, "Bernd Ohr (jazzbox) via swift-evolution" <swift-evolution at swift.org> wrote:

> I am using a typealias for this:
>
> struct MyStruct {
>     private typealias _Self = MyStruct
>
>     static func staticMethod() { print("staticMethod") }
>
>     func instanceMethod() {
>         _Self.staticMethod()
>     }
> }

Yes, you can do that.  It's cumbersome, and you can't use your private
typealias in any public method signatures.

>> > 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

-- 
Dave



More information about the swift-evolution mailing list