Yes, and it's covered in those previous threads. In brief, not all
retroactive modeling involves extending a type:

* A vendor supplies you with a closed-source library with a struct S that
conforms to standard library protocol P.

* Protocol P requires a method named foo(), so struct S has its own
implementation of foo().

* You extend protocol P by adding a new default implementation of foo().

This cannot be done if a keyword is required for overriding a default
implementation. There is also nowhere for you to append any sort of "retro"
keyword anywhere, because no part of your own code extends S in any way.

Please, please take the time to study the previous threads; we should not
be re-playing existing discussions four or five times on this list.


On Thu, Aug 25, 2016 at 10:06 PM, Charles Srstka <cocoa...@charlessoft.com>
wrote:

> Is there a reason that adding a “retro” keyword on extensions meant to
> retroactively apply a protocol is unacceptable?
>
> Charles
>
> On Aug 25, 2016, at 6:44 PM, Xiaodi Wu via swift-evolution <
> swift-evolution@swift.org> wrote:
>
> Chris, as I wrote above, this idea has been discussed previously on
> several occasions, and the principal reason why it has been abandoned each
> time is that it cannot accommodate retroactive modeling. I'll refer you
> again to three previous threads discussing this and closely related matters:
>
>
>
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to