Skip to content

Commit d0abbaf

Browse files
authored
Selectively disable type signature link disambiguation (#1044)
rdar://136864852
1 parent 267c481 commit d0abbaf

File tree

4 files changed

+78
-635
lines changed

4 files changed

+78
-635
lines changed

Sources/SwiftDocC/Infrastructure/Link Resolution/PathHierarchy+TypeSignature.swift

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,7 @@ import SymbolKit
1616
extension PathHierarchy {
1717
/// Returns the lists of the type names for the symbol's parameters and return values.
1818
static func functionSignatureTypeNames(for symbol: SymbolGraph.Symbol) -> (parameterTypeNames: [String], returnTypeNames: [String])? {
19-
guard let signature = symbol[mixin: SymbolGraph.Symbol.FunctionSignature.self] else {
20-
return nil
21-
}
22-
23-
return (
24-
signature.parameters.compactMap { parameterTypeSpellings(for: $0.declarationFragments) },
25-
returnTypeSpellings(for: signature.returns).map { [$0] } ?? []
26-
)
19+
return nil
2720
}
2821

2922
private static func parameterTypeSpellings(for fragments: [SymbolGraph.Symbol.DeclarationFragments.Fragment]) -> String? {

Tests/SwiftDocCTests/Catalog Processing/GeneratedCurationWriterTests.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -299,10 +299,10 @@ class GeneratedCurationWriterTests: XCTestCase {
299299
300300
### Instance Methods
301301
302-
- ``fourthTestMemberName(test:)->Float`` <!-- func fourthTestMemberName(test: String) -> Float -->
303-
- ``fourthTestMemberName(test:)->Double`` <!-- func fourthTestMemberName(test: String) -> Double -->
304-
- ``fourthTestMemberName(test:)->Int`` <!-- func fourthTestMemberName(test: String) -> Int -->
305-
- ``fourthTestMemberName(test:)->String`` <!-- func fourthTestMemberName(test: String) -> String -->
302+
- ``fourthTestMemberName(test:)-1h173`` <!-- func fourthTestMemberName(test: String) -> Float -->
303+
- ``fourthTestMemberName(test:)-8iuz7`` <!-- func fourthTestMemberName(test: String) -> Double -->
304+
- ``fourthTestMemberName(test:)-91hxs`` <!-- func fourthTestMemberName(test: String) -> Int -->
305+
- ``fourthTestMemberName(test:)-961zx`` <!-- func fourthTestMemberName(test: String) -> String -->
306306
307307
""")
308308
}

Tests/SwiftDocCTests/Infrastructure/ExternalPathHierarchyResolverTests.swift

Lines changed: 14 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -202,32 +202,6 @@ class ExternalPathHierarchyResolverTests: XCTestCase {
202202
try linkResolvers.assertSuccessfullyResolves(authoredLink: "/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-1cyvp")
203203
try linkResolvers.assertSuccessfullyResolves(authoredLink: "/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-2vke2")
204204

205-
try linkResolvers.assertSuccessfullyResolves(
206-
authoredLink: "/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-(Int)",
207-
to: "doc://org.swift.MixedFramework/documentation/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-1cyvp"
208-
)
209-
try linkResolvers.assertSuccessfullyResolves(
210-
authoredLink: "/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-(String)",
211-
to: "doc://org.swift.MixedFramework/documentation/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-2vke2"
212-
)
213-
214-
try linkResolvers.assertSuccessfullyResolves(
215-
authoredLink: "/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-(Int)->Int",
216-
to: "doc://org.swift.MixedFramework/documentation/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-1cyvp"
217-
)
218-
try linkResolvers.assertSuccessfullyResolves(
219-
authoredLink: "/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-(String)->Int",
220-
to: "doc://org.swift.MixedFramework/documentation/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-2vke2"
221-
)
222-
try linkResolvers.assertSuccessfullyResolves(
223-
authoredLink: "/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-(Int)->_",
224-
to: "doc://org.swift.MixedFramework/documentation/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-1cyvp"
225-
)
226-
try linkResolvers.assertSuccessfullyResolves(
227-
authoredLink: "/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-(String)->_",
228-
to: "doc://org.swift.MixedFramework/documentation/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-2vke2"
229-
)
230-
231205
// public enum CollisionsWithDifferentSubscriptArguments {
232206
// public subscript(something: Int) -> Int { 0 }
233207
// public subscript(somethingElse: String) -> Int { 0 }
@@ -236,31 +210,6 @@ class ExternalPathHierarchyResolverTests: XCTestCase {
236210
try linkResolvers.assertSuccessfullyResolves(authoredLink: "/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-4fd0l")
237211
try linkResolvers.assertSuccessfullyResolves(authoredLink: "/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-757cj")
238212

239-
try linkResolvers.assertSuccessfullyResolves(
240-
authoredLink: "/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-(Int)",
241-
to: "doc://org.swift.MixedFramework/documentation/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-4fd0l"
242-
)
243-
try linkResolvers.assertSuccessfullyResolves(
244-
authoredLink: "/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-(String)",
245-
to: "doc://org.swift.MixedFramework/documentation/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-757cj"
246-
)
247-
248-
try linkResolvers.assertSuccessfullyResolves(
249-
authoredLink: "/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-(Int)->Int",
250-
to: "doc://org.swift.MixedFramework/documentation/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-4fd0l"
251-
)
252-
try linkResolvers.assertSuccessfullyResolves(
253-
authoredLink: "/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-(String)->Int",
254-
to: "doc://org.swift.MixedFramework/documentation/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-757cj"
255-
)
256-
try linkResolvers.assertSuccessfullyResolves(
257-
authoredLink: "/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-(Int)->_",
258-
to: "doc://org.swift.MixedFramework/documentation/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-4fd0l"
259-
)
260-
try linkResolvers.assertSuccessfullyResolves(
261-
authoredLink: "/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-(String)->_",
262-
to: "doc://org.swift.MixedFramework/documentation/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-757cj"
263-
)
264213

265214
// @objc(MySwiftClassObjectiveCName)
266215
// public class MySwiftClassSwiftName: NSObject {
@@ -505,24 +454,24 @@ class ExternalPathHierarchyResolverTests: XCTestCase {
505454
authoredLink: "/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)",
506455
errorMessage: "'something(argument:)' is ambiguous at '/MixedFramework/CollisionsWithDifferentFunctionArguments'",
507456
solutions: [
508-
.init(summary: "Insert '-(Int)' for \n'func something(argument: Int) -> Int'", replacement: ("-(Int)", 77, 77)),
509-
.init(summary: "Insert '-(String)' for \n'func something(argument: String) -> Int'", replacement: ("-(String)", 77, 77)),
457+
.init(summary: "Insert '-1cyvp' for \n'func something(argument: Int) -> Int'", replacement: ("-1cyvp", 77, 77)),
458+
.init(summary: "Insert '-2vke2' for \n'func something(argument: String) -> Int'", replacement: ("-2vke2", 77, 77)),
510459
]
511460
)
512461
try linkResolvers.assertFailsToResolve(
513462
authoredLink: "/documentation/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)",
514463
errorMessage: "'something(argument:)' is ambiguous at '/MixedFramework/CollisionsWithDifferentFunctionArguments'",
515464
solutions: [
516-
.init(summary: "Insert '-(Int)' for \n'func something(argument: Int) -> Int'", replacement: ("-(Int)", 91, 91)),
517-
.init(summary: "Insert '-(String)' for \n'func something(argument: String) -> Int'", replacement: ("-(String)", 91, 91)),
465+
.init(summary: "Insert '-1cyvp' for \n'func something(argument: Int) -> Int'", replacement: ("-1cyvp", 91, 91)),
466+
.init(summary: "Insert '-2vke2' for \n'func something(argument: String) -> Int'", replacement: ("-2vke2", 91, 91)),
518467
]
519468
)
520469
try linkResolvers.assertFailsToResolve(
521470
authoredLink: "/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-abc123",
522471
errorMessage: "'abc123' isn't a disambiguation for 'something(argument:)' at '/MixedFramework/CollisionsWithDifferentFunctionArguments'",
523472
solutions: [
524-
.init(summary: "Replace 'abc123' with '(Int)' for \n'func something(argument: Int) -> Int'", replacement: ("-(Int)", 77, 84)),
525-
.init(summary: "Replace 'abc123' with '(String)' for \n'func something(argument: String) -> Int'", replacement: ("-(String)", 77, 84)),
473+
.init(summary: "Replace 'abc123' with '1cyvp' for \n'func something(argument: Int) -> Int'", replacement: ("-1cyvp", 77, 84)),
474+
.init(summary: "Replace 'abc123' with '2vke2' for \n'func something(argument: String) -> Int'", replacement: ("-2vke2", 77, 84)),
526475
]
527476
)
528477
// Providing disambiguation will narrow down the suggestions. Note that `argument` label is missing in the last path component
@@ -544,16 +493,16 @@ class ExternalPathHierarchyResolverTests: XCTestCase {
544493
authoredLink: "/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-method",
545494
errorMessage: "'something(argument:)-method' is ambiguous at '/MixedFramework/CollisionsWithDifferentFunctionArguments'",
546495
solutions: [
547-
.init(summary: "Replace 'method' with '(Int)' for \n'func something(argument: Int) -> Int'", replacement: ("-(Int)", 77, 84)),
548-
.init(summary: "Replace 'method' with '(String)' for \n'func something(argument: String) -> Int'", replacement: ("-(String)", 77, 84)),
496+
.init(summary: "Replace 'method' with '1cyvp' for \n'func something(argument: Int) -> Int'", replacement: ("-1cyvp", 77, 84)),
497+
.init(summary: "Replace 'method' with '2vke2' for \n'func something(argument: String) -> Int'", replacement: ("-2vke2", 77, 84)),
549498
]
550499
)
551500
try linkResolvers.assertFailsToResolve(
552501
authoredLink: "/documentation/MixedFramework/CollisionsWithDifferentFunctionArguments/something(argument:)-method",
553502
errorMessage: "'something(argument:)-method' is ambiguous at '/MixedFramework/CollisionsWithDifferentFunctionArguments'",
554503
solutions: [
555-
.init(summary: "Replace 'method' with '(Int)' for \n'func something(argument: Int) -> Int'", replacement: ("-(Int)", 91, 98)),
556-
.init(summary: "Replace 'method' with '(String)' for \n'func something(argument: String) -> Int'", replacement: ("-(String)", 91, 98)),
504+
.init(summary: "Replace 'method' with '1cyvp' for \n'func something(argument: Int) -> Int'", replacement: ("-1cyvp", 91, 98)),
505+
.init(summary: "Replace 'method' with '2vke2' for \n'func something(argument: String) -> Int'", replacement: ("-2vke2", 91, 98)),
557506
]
558507
)
559508

@@ -565,16 +514,16 @@ class ExternalPathHierarchyResolverTests: XCTestCase {
565514
authoredLink: "/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)",
566515
errorMessage: "'subscript(_:)' is ambiguous at '/MixedFramework/CollisionsWithDifferentSubscriptArguments'",
567516
solutions: [
568-
.init(summary: "Insert '-(Int)' for \n'subscript(something: Int) -> Int { get }'", replacement: ("-(Int)", 71, 71)),
569-
.init(summary: "Insert '-(String)' for \n'subscript(somethingElse: String) -> Int { get }'", replacement: ("-(String)", 71, 71)),
517+
.init(summary: "Insert '-4fd0l' for \n'subscript(something: Int) -> Int { get }'", replacement: ("-4fd0l", 71, 71)),
518+
.init(summary: "Insert '-757cj' for \n'subscript(somethingElse: String) -> Int { get }'", replacement: ("-757cj", 71, 71)),
570519
]
571520
)
572521
try linkResolvers.assertFailsToResolve(
573522
authoredLink: "/MixedFramework/CollisionsWithDifferentSubscriptArguments/subscript(_:)-subscript",
574523
errorMessage: "'subscript(_:)-subscript' is ambiguous at '/MixedFramework/CollisionsWithDifferentSubscriptArguments'",
575524
solutions: [
576-
.init(summary: "Replace 'subscript' with '(Int)' for \n'subscript(something: Int) -> Int { get }'", replacement: ("-(Int)", 71, 81)),
577-
.init(summary: "Replace 'subscript' with '(String)' for \n'subscript(somethingElse: String) -> Int { get }'", replacement: ("-(String)", 71, 81)),
525+
.init(summary: "Replace 'subscript' with '4fd0l' for \n'subscript(something: Int) -> Int { get }'", replacement: ("-4fd0l", 71, 81)),
526+
.init(summary: "Replace 'subscript' with '757cj' for \n'subscript(somethingElse: String) -> Int { get }'", replacement: ("-757cj", 71, 81)),
578527
]
579528
)
580529
}

0 commit comments

Comments
 (0)