[swift-evolution] Proposal: Change of syntax for class protocols

Sean Heber sean at fifthace.com
Mon Dec 7 10:32:15 CST 2015

I found this odd, too. I don’t know what kind of parsing ramifications this might have, but I like the idea. I suppose one downside is that it makes protocols for classes seem somehow special or different from other protocols - but then again, they kind of are!


> On Dec 7, 2015, at 10:00 AM, Matthew Cheok via swift-evolution <swift-evolution at swift.org> wrote:
> Currently, we declare class protocols with the following syntax:
> protocol TestProtocol: class, OtherProtocol {}
> This is odd for a few reasons:
> 1) The keyword class exists in the middle of the declaration
> 2) The keyword class follows the colon and looks a lot like inheritance
> 3) The keyword class occupies a somewhat arbitrary first position after the colon (otherwise we have an error)
> We also have another use of the class keyword as a modifier when declaring class methods:
> class func doSomething() {}
> I’m suggesting a change of syntax that rectifies the above issues:
> class protocol TestProtocol: OtherProtocol {}
> Would love to hear other thoughts on this.
> - Matthew
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

More information about the swift-evolution mailing list