Skip to content

Commit 4300f71

Browse files
committed
[metadata prespecialization] Available in 5.3.
1 parent e26b216 commit 4300f71

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

include/swift/AST/ASTContext.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,10 @@ class ASTContext final {
631631
/// compiler for the target platform.
632632
AvailabilityContext getSwift52Availability();
633633

634+
/// Get the runtime availability of features introduced in the Swift 5.3
635+
/// compiler for the target platform.
636+
AvailabilityContext getSwift53Availability();
637+
634638
/// Get the runtime availability of features that have been introduced in the
635639
/// Swift compiler for future versions of the target platform.
636640
AvailabilityContext getSwiftFutureAvailability();

lib/AST/Availability.cpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ AvailabilityContext ASTContext::getTypesInAbstractMetadataStateAvailability() {
243243
}
244244

245245
AvailabilityContext ASTContext::getPrespecializedGenericMetadataAvailability() {
246-
return getSwiftFutureAvailability();
246+
return getSwift53Availability();
247247
}
248248

249249
AvailabilityContext ASTContext::getSwift52Availability() {
@@ -263,6 +263,23 @@ AvailabilityContext ASTContext::getSwift52Availability() {
263263
}
264264
}
265265

266+
AvailabilityContext ASTContext::getSwift53Availability() {
267+
auto target = LangOpts.Target;
268+
269+
if (target.isMacOSX() ) {
270+
return AvailabilityContext(
271+
VersionRange::allGTE(llvm::VersionTuple(10, 99, 0)));
272+
} else if (target.isiOS()) {
273+
return AvailabilityContext(
274+
VersionRange::allGTE(llvm::VersionTuple(99, 0, 0)));
275+
} else if (target.isWatchOS()) {
276+
return AvailabilityContext(
277+
VersionRange::allGTE(llvm::VersionTuple(9, 99, 0)));
278+
} else {
279+
return AvailabilityContext::alwaysAvailable();
280+
}
281+
}
282+
266283
AvailabilityContext ASTContext::getSwiftFutureAvailability() {
267284
auto target = LangOpts.Target;
268285

0 commit comments

Comments
 (0)