[swift-evolution] [Proposal] Allow static protocol extension methods to be called directly on the protocol

Rasmus Kjeldsen rasmus.kjeldsen at gmail.com
Sat Feb 27 04:31:34 CST 2016

I propose to allow static protocol extension methods to be used directly on the protocol.
This would enable the Factory-pattern to be elegantly implemented as in the example below:

protocol P {}

class A : P {}
class B : P {}

extension P {
	static func factory(type: Bool) -> P { return type ? A() : B()}

let a = P.factory(false) // <- Not possible in Swift 2, factory() can only be used on either A or B


Rasmus Friis Kjeldsen

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160227/bfd1910e/attachment.html>

More information about the swift-evolution mailing list