@@ -1400,8 +1400,8 @@ static bool isCreateExecutorsFunctionAvailable(SILGenModule &SGM) {
14001400 if (!ctx.LangOpts .DisableAvailabilityChecking ) {
14011401 auto deploymentAvailability = AvailabilityRange::forDeploymentTarget (ctx);
14021402 auto runtimeAvailability = AvailabilityRange::forRuntimeTarget (ctx);
1403- auto declAvailability = ctx.getCustomExecutorsAvailability ();
1404- auto declRtAvailability = ctx.getCustomExecutorsRuntimeAvailability ();
1403+ auto declAvailability = ctx.getCustomGlobalExecutorsAvailability ();
1404+ auto declRtAvailability = ctx.getCustomGlobalExecutorsRuntimeAvailability ();
14051405 return deploymentAvailability.isContainedIn (declAvailability)
14061406 && runtimeAvailability.isContainedIn (declRtAvailability);
14071407 }
@@ -1429,21 +1429,23 @@ void SILGenFunction::emitAsyncMainThreadStart(SILDeclRef entryPoint) {
14291429 if (!isCreateExecutorsFunctionAvailable (SGM)) {
14301430 ctx.Diags .diagnose (SourceLoc (), diag::executor_factory_not_supported);
14311431 } else {
1432- CanType factoryTy = SGM.getExecutorFactory ()->getCanonicalType ();
1432+ CanType factoryTy = SGM.getConfiguredExecutorFactory ()->getCanonicalType ();
14331433
14341434 if (!factoryTy) {
14351435 ctx.Diags .diagnose (SourceLoc (), diag::cannot_find_executor_factory_type,
14361436 *ctx.LangOpts .ExecutorFactory );
14371437 }
14381438
1439- ProtocolDecl *executorFactoryProtocol = SGM.getExecutorFactoryProtocol ();
1439+ ProtocolDecl *executorFactoryProtocol
1440+ = ctx.getProtocol (KnownProtocolKind::ExecutorFactory);
14401441 auto conformance = lookupConformance (factoryTy, executorFactoryProtocol);
14411442
14421443 if (conformance.isInvalid ()) {
14431444 // If this type doesn't conform, ignore it and use the default factory
14441445 SourceLoc loc = extractNearestSourceLoc (factoryTy);
14451446
1446- ctx.Diags .diagnose (loc, diag::executor_factory_must_conform, factoryTy);
1447+ ctx.Diags .diagnose (loc, diag::executor_factory_must_conform,
1448+ *ctx.LangOpts .ExecutorFactory );
14471449
14481450 factoryTy = SGM.getDefaultExecutorFactory ()->getCanonicalType ();
14491451 conformance = lookupConformance (factoryTy, executorFactoryProtocol);
@@ -1464,7 +1466,7 @@ void SILGenFunction::emitAsyncMainThreadStart(SILDeclRef entryPoint) {
14641466 SILValue factorySILMetaTy
14651467 = B.createMetatype (moduleLoc, getLoweredType (factoryThickMetaTy));
14661468 auto ceSubs = SubstitutionMap::getProtocolSubstitutions (
1467- conformance.getRequirement (), factoryTy, conformance);
1469+ conformance.getProtocol (), factoryTy, conformance);
14681470 B.createApply (moduleLoc, createExecutorsFunc, ceSubs, { factorySILMetaTy });
14691471 }
14701472 }
0 commit comments