[swift-evolution] [Pitch] Adding a Self type name shortcut for static member access
tjw at me.com
Tue Apr 5 15:06:44 CDT 2016
> On Apr 5, 2016, at 11:41 AM, Russ Bishop <xenadu at gmail.com> wrote:
> But if you don’t want subclasses to override it then why are you making it internal/public in the first place?
I'm wan’t talking about overriding it… In my earlier posts I was talking about subclasses being able to call a utility function on their superclass and have a generic be expanded to the subclass type (whatever it is) by using `#Self`.
So, if the superclass `PropertyOwner ` has something like this (excusing typos since this code can’t be compiled right now, obviously =) ...
static func property<Owner: PropertyOwner, ValueType>(ownerType: Owner.Type = #Self.self, name: String, value: ValueType)
then a subclass `Sub` could do:
static let foozle = property(name: “foozle”, value: Int(3))
and end up with `foozle` being configured with ownerType = Sub.self. If later this property is moved to a different class, its ownerType would automatically change based on its new scope.
More information about the swift-evolution