Sent from my iPad
> On May 10, 2016, at 11:01 AM, Timothy Wood via swift-evolution > <[email protected]> wrote: > > >>> On May 10, 2016, at 8:56 AM, Chris Lattner via swift-evolution >>> <[email protected]> wrote: >>> >>> >>> On May 10, 2016, at 7:50 AM, Erica Sadun via swift-evolution >>> <[email protected]> wrote: >>> >>> As a compile-time substitution, it could be used in any and all of the >>> examples in your bullet list as a literal text replacement.. >>> >>> Quick rundown: >>> >>> struct A { >>> ...#Self... // #Self is substituted by A >>> } >>> >>> class B { >>> ...#Self... // Self is substituted by B >>> } >>> >>> class C { >>> ... #Self... // Self is substituted by C, which is the defining type at >>> compile time >>> } >> >> I think it would be surprising if #Self produced the name of the enclosing >> static type: Self produces the dynamic type, and we’d want to preserve >> consistency if it were named #Self. > > > I’m not sure I understand this comment -- if #Self should mean the same as > Self, why would it get added? My whole point in suggesting #Self was that it > mirrored #file and #line in that it was a compile time replacement of some > static information. It isn't at all the same. Self is covariant with the dynamic context. #Self, #Type, #StaticType or whatever we call it is statically determined by the lexical context. > > -tim > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
