Skip to content

Commit 3f45c17

Browse files
committed
AST: Fill in ASTContext::getSwift59Availability()
1 parent 0d1eca1 commit 3f45c17

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

lib/AST/Availability.cpp

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -677,8 +677,20 @@ AvailabilityContext ASTContext::getSwift58Availability() {
677677
}
678678

679679
AvailabilityContext ASTContext::getSwift59Availability() {
680-
// TODO: Update Availability impl when Swift 5.9 is released
681-
return getSwiftFutureAvailability();
680+
auto target = LangOpts.Target;
681+
682+
if (target.isMacOSX()) {
683+
return AvailabilityContext(
684+
VersionRange::allGTE(llvm::VersionTuple(14, 0, 0)));
685+
} else if (target.isiOS()) {
686+
return AvailabilityContext(
687+
VersionRange::allGTE(llvm::VersionTuple(17, 0, 0)));
688+
} else if (target.isWatchOS()) {
689+
return AvailabilityContext(
690+
VersionRange::allGTE(llvm::VersionTuple(10, 0, 0)));
691+
} else {
692+
return AvailabilityContext::alwaysAvailable();
693+
}
682694
}
683695

684696
AvailabilityContext ASTContext::getSwiftFutureAvailability() {

test/Generics/variadic_generic_types_availability.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
struct G<each T> {}
66
// expected-note@-1 {{add @available attribute to enclosing generic struct}}
7-
// expected-error@-2 {{parameter packs in generic types are only available in macOS 99.99.0 or newer}}
7+
// expected-error@-2 {{parameter packs in generic types are only available in macOS 14.0.0 or newer}}
88

99
// Type aliases are OK
10-
typealias A<each T> = (repeat each T)
10+
typealias A<each T> = (repeat each T)

0 commit comments

Comments
 (0)