mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
When a potential archetype refers to a concrete (non-associated) type declaration, we bind to that concrete type. Add a new requirement source kind for this case that is always derived, separating it from the nested-type-name-match source. One important aspect of this is that typealiases in protocols that "override" an associated type an inherited protocol will generate the same requirement signature as the equivalent protocol that uses a same-type constraint, making the suppression of the "hey, this is equivalent to a same-type constraint now!" warning an ABI-preserving change. With this, remove a now-unnecessary hack for nested-name-match requirement sources.
197 KiB
197 KiB