> Personally I have always felt “class” was an oddball special case here that's unneeded because we have a perfectly good protocol that means the same thing: AnyObject.
+1 Repurposing the `class` keyword to constrain a protocol to reference types has always felt awkward, out-of-place, and inconsistent with the rest of the language. I would love to see this changed to `AnyObject` as Dave suggests. Given all of the other great refinements for language consistency that have been proposed and accepted for Swift 3, the awkwardness of using `class` here is even greater than before. Jesse On Tue, May 3, 2016 at 11:06 AM, Dave Abrahams via swift-evolution < swift-evolution@swift.org> wrote: > > on Mon May 02 2016, David Sweeris <swift-evolution@swift.org> wrote: > > > I was just thinking that: > > > > protocol Foo : reference {} > > > > might be more to the point than: > > > > protocol Foo : class {} > > > > I know that it’s currently a moot point because classes are the only* > > reference-semantics type of type in Swift, but it’s conceivable that > there might > > some day be others. Anyway, I’m not saying it’s a big deal or anything, > I’m just > > trying to think of any source-breaking changes we might want to make > before > > Swift 3 drops, and this seems like an easy one. > > > > - Dave Sweeris > > > > * I’m not actually sure this is true. I have a very vague recollection > about > > some protocols getting reference semantics in certain circumstances, but > the > > memory is so hazy I’m not sure I trust it. Also I can’t remember if the > > “indirect” keyword in enums affects the semantics. > > Personally I have always felt “class” was an oddball special case here > that's unneeded because we have a perfectly good protocol that means the > same thing: AnyObject. > > -- > Dave > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution > -- Jesse Squires *blog* | jessesquires.com <http://www.jessesquires.com> *github* | github.com/jessesquires <http://www.github.com/jessesquires> *hexedbits* | hexedbits.com <http://www.hexedbits.com>
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution