From 8d54cbf704de54af6950d65607cf7adf73a154d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20St=C3=BChrk?= Date: Sun, 25 Apr 2021 22:56:40 +0200 Subject: [PATCH 1/4] Add failing tests for top level symbols. --- Tests/SwiftDocTests/InterfaceTypeTests.swift | 30 ++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/Tests/SwiftDocTests/InterfaceTypeTests.swift b/Tests/SwiftDocTests/InterfaceTypeTests.swift index 58ee31c3..57e7ab20 100644 --- a/Tests/SwiftDocTests/InterfaceTypeTests.swift +++ b/Tests/SwiftDocTests/InterfaceTypeTests.swift @@ -359,4 +359,34 @@ final class InterfaceTypeTests: XCTestCase { XCTAssertEqual(members[0].name, "someMethod()") XCTAssertEqual(members[1].name, "someExtensionMethod()") } + + public func testToplevelSymbols() throws { + let source = #""" + public class SomeClass { + public func someMethod() { } + } + + public infix operator ≠ + + public typealias OtherClass = SomeClass + + public func someFunction() { } + + public extension OtherClass { + func someExtensionMethod() { } + } + """# + + let url = try temporaryFile(contents: source) + let sourceFile = try SourceFile(file: url, relativeTo: url.deletingLastPathComponent()) + let module = Module(name: "Module", sourceFiles: [sourceFile]) + + XCTAssertEqual(module.interface.topLevelSymbols.count, 4) + print(module.interface.topLevelSymbols) + + XCTAssertEqual(module.interface.topLevelSymbols[0].name, "SomeClass") + XCTAssertEqual(module.interface.topLevelSymbols[1].name, "≠") + XCTAssertEqual(module.interface.topLevelSymbols[2].name, "OtherClass") + XCTAssertEqual(module.interface.topLevelSymbols[3].name, "someFunction()") + } } From 8d831a1e83d78d9d2876f083bb528729d1f46fc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20St=C3=BChrk?= Date: Sun, 25 Apr 2021 23:00:28 +0200 Subject: [PATCH 2/4] Fix top level symbols. --- Sources/SwiftDoc/Interface.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/SwiftDoc/Interface.swift b/Sources/SwiftDoc/Interface.swift index b5a0ad3a..c654d0ee 100644 --- a/Sources/SwiftDoc/Interface.swift +++ b/Sources/SwiftDoc/Interface.swift @@ -24,7 +24,7 @@ public final class Interface { return false } - return symbol.id.pathComponents.isEmpty + return symbol.id.pathComponents.count == 1 } self.relationships = { From 808818b3e7404d93a2e61d32aa9bde0dfc94e6ba Mon Sep 17 00:00:00 2001 From: Mattt Date: Mon, 26 Apr 2021 05:40:53 -0700 Subject: [PATCH 3/4] Update Sources/SwiftDoc/Interface.swift --- Sources/SwiftDoc/Interface.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/SwiftDoc/Interface.swift b/Sources/SwiftDoc/Interface.swift index c654d0ee..8f5137ed 100644 --- a/Sources/SwiftDoc/Interface.swift +++ b/Sources/SwiftDoc/Interface.swift @@ -24,7 +24,7 @@ public final class Interface { return false } - return symbol.id.pathComponents.count == 1 + return symbol.id.context.isEmpty } self.relationships = { From 75151120d0f8282278a1e75554190da5b99b0d57 Mon Sep 17 00:00:00 2001 From: Mattt Date: Mon, 26 Apr 2021 06:08:39 -0700 Subject: [PATCH 4/4] Remove print statement --- Tests/SwiftDocTests/InterfaceTypeTests.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/Tests/SwiftDocTests/InterfaceTypeTests.swift b/Tests/SwiftDocTests/InterfaceTypeTests.swift index 57e7ab20..78efd0f4 100644 --- a/Tests/SwiftDocTests/InterfaceTypeTests.swift +++ b/Tests/SwiftDocTests/InterfaceTypeTests.swift @@ -382,7 +382,6 @@ final class InterfaceTypeTests: XCTestCase { let module = Module(name: "Module", sourceFiles: [sourceFile]) XCTAssertEqual(module.interface.topLevelSymbols.count, 4) - print(module.interface.topLevelSymbols) XCTAssertEqual(module.interface.topLevelSymbols[0].name, "SomeClass") XCTAssertEqual(module.interface.topLevelSymbols[1].name, "≠")