Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions Sources/KnitCodeGen/AssemblyParsing.swift
Original file line number Diff line number Diff line change
Expand Up @@ -224,13 +224,10 @@ class ClassDeclVisitor: SyntaxVisitor, IfConfigVisitor {
}

override func visit(_ node: TypeAliasDeclSyntax) -> SyntaxVisitorContinueKind {
guard let identifier = node.initializer.value.as(IdentifierTypeSyntax.self) else {
return .skipChildren
}
if node.name.text == "TargetResolver" {
self.targetResolver = identifier.name.text
self.targetResolver = node.initializer.value.description
} else if node.name.text == "ReplacedAssembly" {
self.fakeReplacesType = identifier.name.text
self.fakeReplacesType = node.initializer.value.description
}

return .skipChildren
Expand Down
12 changes: 12 additions & 0 deletions Tests/KnitCodeGenTests/AssemblyParsingTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,18 @@ final class AssemblyParsingTests: XCTestCase {
XCTAssertEqual(config.assemblyShortName, "FooTest")
}

func testSubmoduleResolver() throws {
let sourceFile: SourceFileSyntax = """
import OtherModule
class FooTestAssembly: ModuleAssembly {
typealias TargetResolver = OtherModule.Resolver
}
"""

let config = try assertParsesSyntaxTree(sourceFile)
XCTAssertEqual(config.targetResolver, "OtherModule.Resolver")
}

func testDebugWrappedAssemblyImports() throws {
let sourceFile: SourceFileSyntax = """
#if DEBUG
Expand Down
Loading