[swift-evolution] Bridging the gap between protocols and protocol extensions
brent at architechies.com
Sat Jan 9 16:05:38 CST 2016
From my previous thread, "[Draft Proposal] Require `final` on protocol extension members", I'm getting the sense that many people want straight-up dynamic dispatch from protocol extension methods. That is, protocol extension methods should be treated as if they were included as requirements of the protocol; the implementations provided should be treated as overridable defaults.
A few questions about that:
1. Do people really want this?
2. People familiar with the implementation of protocol witnesses: is this feasible?
3. Do people want the current non-overridable, statically-dispatched protocol extension members available as an option?
4. Should this be proposed alongside other changes that would reduce the difference between a protocol and a protocol extension, like allowing default implementations in the protocol declaration?
5. Especially with #3 or #4, this sounds like a very large change which could be broken up into several smaller ones. Core team members: what is the best way to propose this? One big proposal with all the details, several small proposals, or a big vague proposal for the overall direction, followed by several smaller proposals with a detailed design for each part?
More information about the swift-evolution