Add swift_getTypeByMangledNameInContextInMetadataState such that we can

use getTypeByMangledName when abstract metadata state is requested

This can significantly reduce the code size of apps constructing deeply
nested types with conditional conformances.

Requires a new runtime.

rdar://57157619
This commit is contained in:
Arnold Schwaighofer
2019-11-15 07:16:33 -08:00
parent d9d6457177
commit 0d324d223f
8 changed files with 143 additions and 25 deletions

View File

@@ -564,6 +564,16 @@ namespace RuntimeConstants {
return RuntimeAvailability::AlwaysAvailable;
}
RuntimeAvailability
GetTypesInAbstractMetadataStateAvailability(ASTContext &context) {
auto featureAvailability =
context.getTypesInAbstractMetadataStateAvailability();
if (!isDeploymentAvailabilityContainedIn(context, featureAvailability)) {
return RuntimeAvailability::ConditionallyAvailable;
}
return RuntimeAvailability::AlwaysAvailable;
}
RuntimeAvailability DynamicReplacementAvailability(ASTContext &Context) {
auto featureAvailability = Context.getSwift51Availability();
if (!isDeploymentAvailabilityContainedIn(Context, featureAvailability)) {