Skip to content

Commit 5871025

Browse files
Merge pull request #36367 from apple/QuietMisdreavus/symbol-availability
[SymbolGraph] don't filter out symbols if their availability was for a platform-agnostic target rdar://74670284
2 parents 2e0bda5 + fe4984b commit 5871025

File tree

3 files changed

+27
-15
lines changed

3 files changed

+27
-15
lines changed

lib/SymbolGraphGen/SymbolGraphASTWalker.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,14 @@ namespace {
6464
bool isUnavailableOrObsoleted(const Decl *D) {
6565
if (const auto *Avail =
6666
D->getAttrs().getUnavailable(D->getASTContext())) {
67-
switch (Avail->getVersionAvailability(D->getASTContext())) {
68-
case AvailableVersionComparison::Unavailable:
69-
case AvailableVersionComparison::Obsoleted:
70-
return true;
71-
default:
72-
break;
67+
if (Avail->Platform != PlatformKind::none) {
68+
switch (Avail->getVersionAvailability(D->getASTContext())) {
69+
case AvailableVersionComparison::Unavailable:
70+
case AvailableVersionComparison::Obsoleted:
71+
return true;
72+
default:
73+
break;
74+
}
7375
}
7476
}
7577
return false;
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// RUN: %empty-directory(%t)
2+
// RUN: %target-build-swift %s -module-name PlatformAgnostic -emit-module -emit-module-path %t/
3+
// RUN: %target-swift-symbolgraph-extract -module-name PlatformAgnostic -I %t -pretty-print -output-dir %t
4+
5+
// RUN: %FileCheck %s --input-file %t/PlatformAgnostic.symbols.json --check-prefix CHECK-FS
6+
// RUN: %FileCheck %s --input-file %t/PlatformAgnostic.symbols.json --check-prefix CHECK-FP
7+
// RUN: %FileCheck %s --input-file %t/PlatformAgnostic.symbols.json --check-prefix CHECK-SO
8+
9+
// CHECK-FS: FutureSwift
10+
@available(swift 99)
11+
public struct FutureSwift {}
12+
13+
// CHECK-FP: FuturePackage
14+
@available(_PackageDescription 99)
15+
public struct FuturePackage {}
16+
17+
// CHECK-SO: SwiftObsolete
18+
@available(swift, obsoleted: 1.0)
19+
public struct SwiftObsolete {}

test/SymbolGraph/Symbols/Unavailable.swift

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,4 @@ extension ShouldAppear {
2525
public func shouldntAppear2() {}
2626
}
2727

28-
// CHECK-NOT: SwiftObsoleted
29-
@available(swift, obsoleted: 1.0)
30-
public struct SwiftObsoleted {}
31-
32-
@available(swift, obsoleted: 1.0)
33-
extension ShouldAppear {
34-
public func shouldntAppear3() {}
35-
}
36-
3728
// CHECK-NOT: shouldntAppear

0 commit comments

Comments
 (0)