Special Case Protocol Conformance: Long-term Tradeoffs for Near-term Conformance

As others had noted, it used to be the case that Swift represented all functions as having a single argument, but that is no longer the case. Bits of the old representation still linger in the compiler.

That used to be the case, but protocol witness tables now record all of the associated type information. The "Self or associated type" limitation was an artifact of that missing information that has lost its technical reasons for existing. You can see this thread for discussion about lifting the restriction:

1 Like