mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Move the storage for the protocols to which a particular potential archetype conforms into EquivalenceClass, so that it is more easily shared. More importantly, keep track of *all* of the constraint sources that produced a particular conformance requirement, so we can revisit them later, which provides a number of improvements: * We can drop self-derived requirements at the end, once we've established all of the equivalence classes * We diagnose redundant conformance requirements, e.g., "T: Sequence" is redundant if "T: Collection" is already specified. * We can choose the best path when forming the conformance access path.
5.1 KiB
5.1 KiB