Conditional conformance collisions

Agreed. SwiftNIO explicitly takes the position that either conforming one of our types to a stdlib protocol, or conforming a stdlib type to our protocol, is a SemVer minor change: that is, it is not considered source breaking. This is despite the fact that users may in fact have their source code broken if they (or, more likely, one of their dependencies) have written such a conformance themselves.

This is simply the only way to handle the fact that extensions are extremely powerful in Swift. Extending types you do not own with protocol conformances to protocols you do not own puts you at risk of breakage.

4 Likes