[swift-evolution] Class and Subclass Existentials (Round 2)

Step Christopher schristopher at bignerdranch.com
Thu Feb 9 06:26:46 CST 2017

Looks good. Minor comments below:

> let t: P & C // Compiler error: subclass contraint must be in first position

Typo: contraint should be constraint
> ...
> typealias TA4 = D & P2
> typealias TA5 = E & P2
> typealias TA5 = TA1 & TA2
> typealias TA5 = class & P1 & class & P2 // Expansion
> typealias TA5 = class & P1 & P2 // Normalization
> // TA5 is valid

The typealias 'T5' is repeated as both an initial composition, and as a demonstration of combining typealiases. 

> This proposal merges the concepts of class and AnyObject, which now have the same meaning: they represent an existential for classes. They are four solutions to this dilemna:
> Do nothing.
> Replace all uses of AnyObject by class, breaking source compatibility.
> Replace all uses of class by AnyObject, breaking source compatibility.
> Redefine AnyObject as typealias AnyObject = class.

I agree with other comments on recommending 4 here, and covering the others as alternatives. 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170209/792beaeb/attachment.html>

More information about the swift-evolution mailing list