Pitch: Allow Protocols to be Nested in Non-Generic Contexts

Apologies for not responding to this before. I agree that a nested protocol should not satisfy an associated type requirement.

Especially with the loss of bare protocol existential syntax, the language is moving towards putting a clearer distinction between protocols (i.e. constraints) and concrete types. associatedtype is currently used to refer to concrete types, and it would be problematic in a lot of senses for it to bind to a nested protocol.

There have been requests in the past for "associated protocols" or something broadly to that effect:

If we ever did add some kind of associated protocol feature, it might be reasonable to use nested protocols to define them, as we currently can with associated types and nested concrete types.

1 Like