mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
A "retroactive" protocol conformance is a conformance that is provided by a module that is neither the module that defines the protocol nor the module that defines the conforming type. It is possible for such conformances to conflict at runtime, if defined in different modules that were not both visible to the compiler at the same time. When mangling a bound generic type, also mangle retroactive protocol conformances that were needed to satisfy the generic requirements of the generic type. This prevents name collisions between (e.g.) types formed using retroactive conformances from different modules. The impact on the size of the mangling is expected to be relatively small, because most conformances are not retroactive. Fixes the ABI part of rdar://problem/14375889.
3 lines
44 B
Swift
3 lines
44 B
Swift
public protocol P { }
|
|
public protocol Q { }
|