mirror of
https://github.com/apple/swift.git
synced 2026-10-02 10:58:03 +02:00
It's now possible to have a base protocol that's less available
than one inheriting from it:
```
@available(macOS 200)
@reparentable public protocol P {}
public protocol Q: P {}
```
In this case, the protocol conformance descriptor for a client type
conforming to Q would contain in its resilient witnesses a base conformance
descriptor for Q conforming to P. That symbol (ending in 'Tb') won't be
available on older versions of the library. So, we choose to weak-link
that symbol (i.e., expect it to be extern_weak) in order to allow the client
targeting an older deployment target to still work.
67 KiB
67 KiB