I feel like I should mention that Clang has __attribute__((__swift_newtype__)) 
type attribute that replaces the imported type from typealias to a new 
RawRepresentable struct. Clang has a variety of poorly documented swift 
compatibility extensions like this (a lot of which I managed to discover, play 
with and determine the effect myself). I think this should be mentioned in your 
proposal, because it looks like this Clang attribute is begging to be 
re-modeled to use your alters.

> On Jul 30, 2017, at 2:01 AM, Daryle Walker via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> Proposal at 
> <https://gist.github.com/CTMacUser/c493f775075e946efdcfd85d38473291 
> <https://gist.github.com/CTMacUser/c493f775075e946efdcfd85d38473291>>, 
> uploaded revision 4.
> 
> Changes:
> 
> Since the original setup was a poor copy of how raw-style enumerations use 
> RawRepresentable, changed the model to actually use RawRepresentable. 
> Actually, it uses a sub-protocol, AnyAlternative, which adds an associated 
> type for the implementing non-alternative type. AnyAlternative also serves a 
> function like AnyObject.
> Removed the old library support type since it’s obsolete. Added back a (now 
> global) function to upcast to the implementation type without needing to name 
> it.
> Added option to initialize alternative by assigning to “super.” Using “super” 
> by itself isn’t allowed in the grammar (It has to be followed by a member 
> specification), so I added it.
> Added note about pointer compatibility.
> The model change led to a lot of rewording. And new/changed technical terms.
> 
> — 
> Daryle Walker
> Mac, Internet, and Video Game Junkie
> darylew AT mac DOT com 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to