Skip to content

Commit a823104

Browse files
committed
Merge remote-tracking branch 'origin/master' into master-rebranch
2 parents 39821ad + 075dd74 commit a823104

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

lib/Sema/TypeCheckAvailability.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2838,7 +2838,9 @@ void swift::checkExplicitAvailability(Decl *decl) {
28382838
// Warn on decls without an introduction version.
28392839
auto &ctx = decl->getASTContext();
28402840
auto safeRangeUnderApprox = AvailabilityInference::availableRange(decl, ctx);
2841-
if (!safeRangeUnderApprox.getOSVersion().hasLowerEndpoint()) {
2841+
if (!safeRangeUnderApprox.getOSVersion().hasLowerEndpoint() &&
2842+
!decl->getAttrs().isUnavailable(ctx)) {
2843+
28422844
auto diag = decl->diagnose(diag::public_decl_needs_availability);
28432845

28442846
auto suggestPlatform = decl->getASTContext().LangOpts.RequireExplicitAvailabilityTarget;

test/attr/require_explicit_availability.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,15 @@ func bar() { } // expected-warning {{public declarations should have an availabi
1313
@available(macOS 10.1, *)
1414
public func ok() { }
1515

16+
@available(macOS, unavailable)
17+
public func unavailableOk() { }
18+
1619
@available(macOS, deprecated: 10.10)
1720
public func missingIntro() { } // expected-warning {{public declarations should have an availability attribute with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
1821

22+
@available(iOS 9.0, *)
23+
public func missingTargetPlatform() { } // expected-warning {{public declarations should have an availability attribute with -require-explicit-availability}} {{1-1=@available(macOS 10.10, *)\n}}
24+
1925
func privateFunc() { }
2026

2127
@_alwaysEmitIntoClient

0 commit comments

Comments
 (0)