> On Dec 1, 2017, at 10:07 AM, Greg Titus <g...@omnigroup.com> wrote: > > > >> On Dec 1, 2017, at 9:11 AM, Ben Langmuir via swift-evolution >> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >> Hey Doug, >> >> I'm very much in favour of reducing the scope of associated type inference. >> Can you outline why you believe that (3) is necessary? If I am following >> correctly, if we had (1) and (2) the only thing you'd need to add to the >> "minimal collection" implementation would be a typealias for `Element`, >> which seems reasonable to me. >> >> Ben > > If nothing else, dropping (3) would be source breaking for 90%+ of current > associated type uses. Whereas even the very minimal inference in (3) probably > brings that figure down to 1% or so (outside of the stdlib, which would need > to adopt a bunch of (2)). Obviously these percentages are just my guesses and > not based on any real survey, but certainly would be the case for all Swift > code I’ve seen.
Many of the associated-type inference bugs I’ve seen were from people expecting something like (3), but the current implementation either fails to infer anything (the common case!) or we get inference from some seemingly-unrelated place. I included (3) specifically because I think taking away (3) will break source compatibility significantly (as Greg suggests)… and despite the fact that the complexity of implementation for (3) is fairly high. - Doug
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution