mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
The first generic parameter of an `OpaqueTypeDecl` was still being used as the "underlying" interface type of the opaque type, which is incorrect for both structural and named opaque result types. Eliminate this notion, because the (declared) interface type already has the correct structure. Only ABI checking depended on the old "underlying" type, so rework it to instead substitute into properly for structural opaque result types as well. Deserialization required a small adjustment to eliminate a cycle because the interface type of an `OpaqueTypeDecl` involves opaque archetype types, which reference the declaration itself... so deserialize the interface type later, now that it's correct.
92 KiB
92 KiB