Files
swift-mirror/lib/IRGen/Linking.cpp
Kavon Farvardin aba9338a85 Reparenting: handle unavailable base conformance descriptor
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.
2026-02-13 16:37:19 -08:00

67 KiB