[swift-evolution] Static Dispatch Pitfalls

Matthew Johnson matthew at anandabits.com
Sat May 21 08:27:40 CDT 2016



Sent from my iPad

> On May 21, 2016, at 8:03 AM, Charlie Monroe via swift-evolution <swift-evolution at swift.org> wrote:
> 
> See the text below the quoted paragraph in my email - I've mentioned how extending the protocol can be helpful e.g. in case of delegate protocols - where you may want to extend the protocol in subclasses of the delegated class introducing new methods for the delegate. In such scenarios, forcing them final is not an option.

Nobody is talking about forcing them final.  We are talking about annotating them with a keyword that documents their behavior (which is unintuitive for sure but makes sense when you think through how things work behind the scenes).  

Maybe we will figure out a way to have something better in the future, but until then highlighting the behavior via annotation is a pretty good option.

> 
> 21. 5. 2016 v 14:25, Brent Royal-Gordon <brent at architechies.com>:
> 
>>> Making them final is not a good idea. I see the default implementations in protocols as something that should replace the optional methods in @objc protocols.
>> 
>> We aren't discussing default implementations. We're discussing methods that are listed *only* in the protocol extension, not in the protocol itself. These methods cannot be "overridden" in the way that a defaulted protocol method can be; I think it's safest to outlaw any attempt to "override" them at all.
>> 
>> -- 
>> Brent Royal-Gordon
>> Architechies
> 
> _______________________________________________
> 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