[swift-evolution] StringProtocol - Do not declare new conformances?

Joe Groff jgroff at apple.com
Tue Sep 19 20:18:58 CDT 2017



> On Sep 19, 2017, at 3:34 PM, Braden Scothern via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Where I work we are writing a C library for cross platform development on iOS, Android, and Ubuntu. Part of what I do with this library is wrap it in Swift. We have a string type that should conform to StringProtocol. The issue is that the StringProtocol has this statement for its documentation overview:
> 
> "Do not declare new conformances to StringProtocol. Only the String and Substring types of the standard library are valid conforming types."
> 
> While I don't think many people will/should conform to StringProtocol, I feel like discouraging the usage of the protocol in the rare cases is is applicable takes away a very powerful tool from the language.
> 
> Are there specific implementation details in the standard library that make it so other types cannot safely conform to StringProtocol? If not is there a compelling reason for this statement to be on the protocol?

AIUI, this warning is there because we did not have time to finalize the design of the protocol for Swift 4, so it may be a source compatibility liability if code outside the standard library tries to conform to it and we change the design in Swift 5.

-Joe



More information about the swift-evolution mailing list