[swift-evolution] Mark protocol methods with their protocol

Dave Abrahams dabrahams at apple.com
Tue Sep 27 09:51:03 CDT 2016


on Tue Sep 27 2016, Thorsten Seitz <tseitz42-AT-icloud.com> wrote:

> While this solves the problem of overlapping names with different
> semantics, how would you express the case where the names actually
> have the same semantics, so that you only want to have one
> implementor?
>
> protocol A {
> 	func specficSemantics()
> 	func sameSemantics()
> }
>
> protocol B {
> 	func specficSemantics()
> 	func sameSemantics()
> }
>
> struct C : A, B {
> 	// these implementations have to be specific for A and B so Karl’s approach allows to differentiate them 
> 	func A.specficSemantics() { … }
> 	func B.specficSemantics() { … }
>
> 	// this implementation should be shared by A and B because both share the same semantic here
> 	func sameSemantics() { … } // ??
>
> 	// would I have to write it like that (manual delegation to the shared implementation)?
> 	func sameSemantics() { … }
> 	func A.sameSemantics() { sameSemantics() }
> 	func B.sameSemantics() { sameSemantics() }
> }
>
> -Thorsten

The cases where you find these kinds of exact collisions are so rare (never in my
career) that it's fine if some manual work is needed.

-- 
-Dave


More information about the swift-evolution mailing list