[swift-evolution] Abstract methods
Goffredo Marocchi
panajev at gmail.com
Sun Nov 5 03:27:09 CST 2017
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 and https://bugs.swift.org/browse/SR-103 and https://bugs.swift.org/plugins/servlet/mobile#issue/SR-584)
References:
https://nomothetis.svbtle.com/the-ghost-of-swift-bugs-future
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> wrote:
>
>
>
>> On Nov 4, 2017, at 1:32 AM, Goffredo Marocchi <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> 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/7bfc5ae2/attachment.html>
More information about the swift-evolution
mailing list