Merge remote-tracking branch 'origin/main' into rebranch

This commit is contained in:
swift-ci
2023-08-01 22:57:48 -07:00
4 changed files with 18 additions and 1 deletions

View File

@@ -898,6 +898,10 @@ public:
/// Get the runtime availability of support for concurrency. /// Get the runtime availability of support for concurrency.
AvailabilityContext getConcurrencyAvailability(); AvailabilityContext getConcurrencyAvailability();
/// Get the runtime availability of the `DiscardingTaskGroup`,
/// and supporting runtime functions function
AvailabilityContext getConcurrencyDiscardingTaskGroupAvailability();
/// Get the back-deployed availability for concurrency. /// Get the back-deployed availability for concurrency.
AvailabilityContext getBackDeployedConcurrencyAvailability(); AvailabilityContext getBackDeployedConcurrencyAvailability();

View File

@@ -2512,7 +2512,7 @@ FUNCTION(TaskGroupInitialize,
// void swift_taskGroup_initializeWithFlags(size_t flags, TaskGroup *group); // void swift_taskGroup_initializeWithFlags(size_t flags, TaskGroup *group);
FUNCTION(TaskGroupInitializeWithFlags, FUNCTION(TaskGroupInitializeWithFlags,
swift_taskGroup_initializeWithFlags, SwiftCC, swift_taskGroup_initializeWithFlags, SwiftCC,
ConcurrencyAvailability, ConcurrencyDiscardingTaskGroupAvailability,
RETURNS(VoidTy), RETURNS(VoidTy),
ARGS(SizeTy, // flags ARGS(SizeTy, // flags
Int8PtrTy, // group Int8PtrTy, // group

View File

@@ -493,6 +493,10 @@ AvailabilityContext ASTContext::getConcurrencyAvailability() {
return getSwift55Availability(); return getSwift55Availability();
} }
AvailabilityContext ASTContext::getConcurrencyDiscardingTaskGroupAvailability() {
return getSwift59Availability();
}
AvailabilityContext ASTContext::getBackDeployedConcurrencyAvailability() { AvailabilityContext ASTContext::getBackDeployedConcurrencyAvailability() {
return getSwift51Availability(); return getSwift51Availability();
} }

View File

@@ -859,6 +859,15 @@ namespace RuntimeConstants {
return RuntimeAvailability::AlwaysAvailable; return RuntimeAvailability::AlwaysAvailable;
} }
RuntimeAvailability ConcurrencyDiscardingTaskGroupAvailability(ASTContext &context) {
auto featureAvailability =
context.getConcurrencyDiscardingTaskGroupAvailability();
if (!isDeploymentAvailabilityContainedIn(context, featureAvailability)) {
return RuntimeAvailability::ConditionallyAvailable;
}
return RuntimeAvailability::AlwaysAvailable;
}
RuntimeAvailability DifferentiationAvailability(ASTContext &context) { RuntimeAvailability DifferentiationAvailability(ASTContext &context) {
auto featureAvailability = context.getDifferentiationAvailability(); auto featureAvailability = context.getDifferentiationAvailability();
if (!isDeploymentAvailabilityContainedIn(context, featureAvailability)) { if (!isDeploymentAvailabilityContainedIn(context, featureAvailability)) {