[swift-evolution] Should we rename "class" when referring to protocol conformance?

Dave Abrahams dabrahams at apple.com
Tue May 3 13:06:55 CDT 2016


on Mon May 02 2016, David Sweeris <swift-evolution at 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



More information about the swift-evolution mailing list