Skip to content

Commit 29d3cc4

Browse files
authored
Merge pull request swiftlang#32246 from bitjammer/acgarland/rdar-63941806-dont-link-self-fragment
[SymbolGraph] Don't add precise identifier to `Self` fragment
2 parents 714e955 + 580bf4d commit 29d3cc4

File tree

2 files changed

+52
-2
lines changed

2 files changed

+52
-2
lines changed

lib/SymbolGraphGen/DeclarationFragmentPrinter.cpp

+5-2
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,11 @@ void DeclarationFragmentPrinter::printTypeRef(Type T, const TypeDecl *RefTo,
137137
PrintNameContext NameContext) {
138138
openFragment(FragmentKind::TypeIdentifier);
139139
printText(Name.str());
140-
llvm::raw_svector_ostream OS(USR);
141-
ide::printDeclUSR(RefTo, OS);
140+
USR.clear();
141+
if (Name.str() != "Self") {
142+
llvm::raw_svector_ostream OS(USR);
143+
ide::printDeclUSR(RefTo, OS);
144+
}
142145
closeFragment();
143146
}
144147

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// RUN: %empty-directory(%t)
2+
// RUN: %target-build-swift %s -module-name SelfNotLinked -emit-module -emit-module-path %t/
3+
// RUN: %target-swift-symbolgraph-extract -module-name SelfNotLinked -I %t -pretty-print -output-dir %t
4+
// RUN: %FileCheck %s --input-file %t/[email protected] --match-full-lines --strict-whitespace
5+
6+
extension Sequence where Self : Collection {
7+
public func foo(x: Self) {}
8+
}
9+
10+
// CHECK-LABEL: "precise": "s:ST13SelfNotLinkedSlRzrlE3foo1xyx_tF",
11+
// CHECK: "declarationFragments": [
12+
// CHECK-NEXT: {
13+
// CHECK-NEXT: "kind": "keyword",
14+
// CHECK-NEXT: "spelling": "func"
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": "foo"
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": "externalParam",
30+
// CHECK-NEXT: "spelling": "x"
31+
// CHECK-NEXT: },
32+
// CHECK-NEXT: {
33+
// CHECK-NEXT: "kind": "text",
34+
// CHECK-NEXT: "spelling": ": "
35+
// CHECK-NEXT: },
36+
// CHECK-NEXT: {
37+
// CHECK-NEXT: "kind": "typeIdentifier",
38+
// CHECK-NEXT: "spelling": "Self"
39+
// CHECK-NEXT: },
40+
// CHECK-NEXT: {
41+
// CHECK-NEXT: "kind": "text",
42+
// CHECK-NEXT: "spelling": ")"
43+
// CHECK-NEXT: }
44+
// CHECK-NEXT: ],
45+
// CHECK-NEXT: "accessLevel": "public"
46+
// CHECK-NEXT: }
47+
// CHECK-NEXT: ],

0 commit comments

Comments
 (0)