[swift-evolution] Abstract methods

Slava Pestov spestov at apple.com
Sun Nov 5 20:43:28 CST 2017


At least SR-103 is a legitimate bug that we would like to fix one day.

Slava

> On Nov 5, 2017, at 1:27 AM, Goffredo Marocchi <panajev at gmail.com> wrote:
> 
> I would say that you kind of already entered a slippery slope when the extension to a protocol can add code / not just declare a behavioural contract and how it changes OOP approach (hence: https://bugs.swift.org/plugins/servlet/mobile#issue/SR-302 <https://bugs.swift.org/plugins/servlet/mobile#issue/SR-302>  and https://bugs.swift.org/browse/SR-103 <https://bugs.swift.org/browse/SR-103>  and  https://bugs.swift.org/plugins/servlet/mobile#issue/SR-584 <https://bugs.swift.org/plugins/servlet/mobile#issue/SR-584>)
> 
> References:
> https://nomothetis.svbtle.com/the-ghost-of-swift-bugs-future <https://nomothetis.svbtle.com/the-ghost-of-swift-bugs-future> 
> https://www.raizlabs.com/dev/2016/12/swift-method-dispatch <https://www.raizlabs.com/dev/2016/12/swift-method-dispatch/>
> 
> Sent from my iPhone
> 
> On 5 Nov 2017, at 01:08, Slava Pestov <spestov at apple.com <mailto:spestov at apple.com>> wrote:
> 
>> 
>> 
>>> On Nov 4, 2017, at 1:32 AM, Goffredo Marocchi <panajev at gmail.com <mailto:panajev at gmail.com>> wrote:
>>> 
>>> 
>>> 
>>> Sent from my iPhone
>>> 
>>>> On 4 Nov 2017, at 05:26, Slava Pestov via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>>> 
>>>> Protocols define requirements, they don’t “add” things to the conforming type
>>> 
>>> I agree with this, but then this warrants a change for protocol extensions too. Would you be happy with the restriction that default method implementations are only available for value types and not for classes (as structs cannot share code any other way, it is the argument for that I seem to recall)?
>> 
>> Protocol extensions are in some sense just syntax sugar for defining new functions. Having a protocol conformance add storage to the conforming type is fundamentally different.
>> 
>> Slava
>> 
>>> 
>>> 
>> 

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


More information about the swift-evolution mailing list