Skip to content

Commit 6ee3764

Browse files
authored
Merge pull request #67182 from slavapestov/swift-59-availability-5.9
AST: Fill in ASTContext::getSwift59Availability() [5.9]
2 parents c7a2c56 + c7a5b5a commit 6ee3764

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
@@ -673,8 +673,20 @@ AvailabilityContext ASTContext::getSwift58Availability() {
673673
}
674674

675675
AvailabilityContext ASTContext::getSwift59Availability() {
676-
// TODO: Update Availability impl when Swift 5.9 is released
677-
return getSwiftFutureAvailability();
676+
auto target = LangOpts.Target;
677+
678+
if (target.isMacOSX()) {
679+
return AvailabilityContext(
680+
VersionRange::allGTE(llvm::VersionTuple(14, 0, 0)));
681+
} else if (target.isiOS()) {
682+
return AvailabilityContext(
683+
VersionRange::allGTE(llvm::VersionTuple(17, 0, 0)));
684+
} else if (target.isWatchOS()) {
685+
return AvailabilityContext(
686+
VersionRange::allGTE(llvm::VersionTuple(10, 0, 0)));
687+
} else {
688+
return AvailabilityContext::alwaysAvailable();
689+
}
678690
}
679691

680692
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)