[swift-evolution] [swift-evolution-announce] [Review] SE-0143: Conditional Conformances

Douglas Gregor dgregor at apple.com
Fri Sep 30 01:56:43 CDT 2016


> On Sep 29, 2016, at 6:46 PM, Brent Royal-Gordon via swift-evolution <swift-evolution at swift.org> wrote:
> 
>> 	• What is your evaluation of the proposal?
> 
> This is a massively important and must-have feature.
> 
> However, I'm dismayed by the size and complexity of the "detailed design" section. There are a *lot* of little nooks and crannies to this proposal. How certain are we that we've identified all the potential problems? Has this been prototyped?


It has not been prototyped. We (== various developers that work on the Swift compiler and standard library) have talked about the implementation of this feature on-and-off for several years, and have some experience with similar features in other languages, so we’re fairly confident in the overall design and shape of the feature. There are undoubtedly things that we’ve missed that will come up (as has been the case in many swift-evolution proposals that precede their implementations), and there are some unanswered questions—for example, John McCall and I realized today that we may have a non-termination issue in the type checker for certain badly-behaved (and probably ill-formed) protocol conformances.

I’m not sure the length of the detailed design section is really an indicator of complexity here, though. Much of it is describing the limitations of the model and motivating the ban on overlapping conformances. Only the section on “implied conditional conformances” has real implementation impact, and that’s not actually new territory for the compiler. So, yes, this is a complex feature. I think we can manage it with this proposal.

	- Doug



More information about the swift-evolution mailing list