> I don’t see how this:
>
> protocol P {
> type/*alias*/ A
> }
>
> struct X : P {
> struct A {}
> }
>
> is fundamentally any different from:
>
> protocol P {
> func f()
> }
>
> struct X : P {
> func f() {}
> }
>
> What am I missing?
I'd say it's the fact that adding an associated type turns a protocol into a
frankenprotocol, and we don't want that to be cast upon innocent souls without
a proper curse word (like "associatedtype").
Also, maybe some day we'll have normal type requirements — something that has
to be defined in a protocol, but does not turn it into a frankenprotocol than
nobody can use anymore. That would be an appropriate use of the normal-looking
keywords.
A.
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution