[Runtime] Redo compatibility overrides boilerplate using a .def file.

rdar://problem/36997475
This commit is contained in:
Mike Ash
2018-03-28 13:39:31 -04:00
parent a3a44a1529
commit f4224b092e
8 changed files with 234 additions and 503 deletions

View File

@@ -691,14 +691,6 @@ swift_conformsToProtocolImpl(const Metadata * const type,
}
}
const WitnessTable *
swift::swift_conformsToProtocol(const Metadata * const type,
const ProtocolDescriptor *protocol) {
static CompatibilityOverride<ConformsToProtocolOverride> Override;
return Override.call(getConformsToProtocolOverride, swift_conformsToProtocolImpl,
type, protocol);
}
const TypeContextDescriptor *
swift::_searchConformancesByMangledTypeName(Demangle::NodePointer node) {
auto &C = Conformances.get();
@@ -833,3 +825,6 @@ bool swift::_checkGenericRequirements(
// Success!
return false;
}
#define OVERRIDE_PROTOCOLCONFORMANCE COMPATIBILITY_OVERRIDE
#include "CompatibilityOverride.def"