Pitch: Suppressed Default Conformances on Associated Types

Can you discuss whether you've considered—and if so, the reasons for not adopting—a rule analogous to the conservative one we adopted in SE-0446 for conditional conformances?

Namely, instead of having users learn a new exception about implicit Copyable, we could require stating copyability or non-copyability explicitly.

In other words, for the example given above where the protocol has a ~Copyable associated type, we could say that it is always necessary to write either extension Queue where Self: Copyable, Self.Element: Copyable or extension Queue where Self: ~Copyable, Self.Element: Copyable.

Is that workable?

1 Like