mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
When forming the generic signature of a generic environment for opaque types, substitute for the outer generic parameters based on the provided substitution map. We weren't able to do this before because the substitution cannot be performed when there are interface types or type variables involved. However, the lazy construction of this generic signature and use of other queries on opaque type archetypes ensures that we don't form new generic signatures until we have concrete types to work with. This enables same-type constraints amongst different opaque result types and their associated types.