[swift-evolution] Mark protocol methods with their protocol
Martin Waitz
tali at admingilde.org
Thu Sep 22 04:28:33 CDT 2016
Hi,
isn't it perfectly fine to conform to multiple unrelated protocols which
both require the same member?
Or to declare protocol conformance in some unrelated module?
Am 2016-09-22 07:15, schrieb Karl via swift-evolution:
> I would like to make it a requirement if not inside a protocol
> extension which declares a conformance, and actually build the
> protocol name in to the member in an ABI-breaking way.
IMO, this is much too restrictive.
When we force the protocol name into the member, we make it impossible
to conform to multiple protocols.
Well ok, we could create alias names for all protocols.
But often you don't know which protocols to conform to when you compile
your module!
What about:
-- module A --
class A {
func foo() {}
}
-- module B --
protocol Foo {
func foo()
}
extension A: Foo {}
What is your ABI name for A.foo()?
Let's keep it simple!
If a simple warning about unrelated methods in a protocol conformance
extension solves 95% of our problem,
then we shouldn't overengineer and throw away all our flexibility just
to be 100% explicit about which protocol uses which members.
--
Martin
More information about the swift-evolution
mailing list