Skip to content

Commit 8fd028c

Browse files
[SymbolGraphGen] emit USRs for primary associated types in DeclarationFragmentPrinter (#60007)
* add a SymbolGraph test for primary associated types * print USRs of primary associated types
1 parent 8981535 commit 8fd028c

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

lib/SymbolGraphGen/DeclarationFragmentPrinter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ void DeclarationFragmentPrinter::printTypeRef(Type T, const TypeDecl *RefTo,
154154
}
155155
}
156156

157-
if (T->isTypeParameter()) {
157+
if (T->isTypeParameter() && T->getKind() != TypeKind::DependentMember) {
158158
ShouldLink = false;
159159
}
160160
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// RUN: %empty-directory(%t)
2+
// RUN: %target-build-swift %s -module-name PrimaryAssocType -emit-module -emit-module-path %t/
3+
// RUN: %target-swift-symbolgraph-extract -module-name PrimaryAssocType -I %t -pretty-print -output-dir %t
4+
// RUN: %FileCheck %s --input-file %t/PrimaryAssocType.symbols.json
5+
6+
public protocol WithPrimary<Assoc> {
7+
associatedtype Assoc
8+
}
9+
10+
// CHECK-LABEL: "precise": "s:16PrimaryAssocType04WithA0P"
11+
// CHECK: "declarationFragments": [
12+
// CHECK-NEXT: {
13+
// CHECK-NEXT: "kind": "keyword"
14+
// CHECK-NEXT: "spelling": "protocol"
15+
// CHECK-NEXT: }
16+
// CHECK-NEXT: {
17+
// CHECK-NEXT: "kind": "text"
18+
// CHECK-NEXT: "spelling": " "
19+
// CHECK-NEXT: }
20+
// CHECK-NEXT: {
21+
// CHECK-NEXT: "kind": "identifier"
22+
// CHECK-NEXT: "spelling": "WithPrimary"
23+
// CHECK-NEXT: }
24+
// CHECK-NEXT: {
25+
// CHECK-NEXT: "kind": "text"
26+
// CHECK-NEXT: "spelling": "<"
27+
// CHECK-NEXT: }
28+
// CHECK-NEXT: {
29+
// CHECK-NEXT: "kind": "typeIdentifier"
30+
// CHECK-NEXT: "spelling": "Assoc"
31+
// CHECK-NEXT: "preciseIdentifier": "s:16PrimaryAssocType04WithA0P0B0Qa"
32+
// CHECK-NEXT: }
33+
// CHECK-NEXT: {
34+
// CHECK-NEXT: "kind": "text"
35+
// CHECK-NEXT: "spelling": ">"
36+
// CHECK-NEXT: }
37+
// CHECK-NEXT: ]

0 commit comments

Comments
 (0)