Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
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
12 changes: 10 additions & 2 deletions Sources/SwiftExtract/ExtractedDecls.swift
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,10 @@ public final class ExtractedFunc: ExtractedSwiftDecl, CustomStringConvertible {

public let functionSignature: SwiftFunctionSignature

// The short path from module root to the file in which this declaration was originally declared.
// E.g. for `Sources/Example/My/Types.swift` it would be `My/Types.swift`.
public let sourceFilePath: String?

public var signatureString: String {
self.swiftDecl.signatureString
}
Expand Down Expand Up @@ -386,12 +390,14 @@ public final class ExtractedFunc: ExtractedSwiftDecl, CustomStringConvertible {
name: String,
apiKind: SwiftAPIKind,
functionSignature: SwiftFunctionSignature,
sourceFilePath: String? = nil,
) {
self.module = module
self.name = name
self.swiftDecl = swiftDecl
self.apiKind = apiKind
self.functionSignature = functionSignature
self.sourceFilePath = sourceFilePath
}

public var description: String {
Expand All @@ -414,7 +420,8 @@ public final class ExtractedFunc: ExtractedSwiftDecl, CustomStringConvertible {
swiftDecl: swiftDecl,
name: name,
apiKind: apiKind,
functionSignature: functionSignature
functionSignature: functionSignature,
sourceFilePath: sourceFilePath
)
}

Expand Down Expand Up @@ -465,7 +472,8 @@ public final class ExtractedFunc: ExtractedSwiftDecl, CustomStringConvertible {
swiftDecl: swiftDecl,
name: name,
apiKind: apiKind,
functionSignature: newSignature
functionSignature: newSignature,
sourceFilePath: sourceFilePath
)
)
}
Expand Down
9 changes: 9 additions & 0 deletions Sources/SwiftExtract/SwiftAnalysisVisitor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ final class SwiftAnalysisVisitor {
name: node.name.text.unescapedSwiftName,
apiKind: apiKind,
functionSignature: signature,
sourceFilePath: sourceFilePath,
)

log.debug("Record extracted method \(node.qualifiedNameForDebug)")
Expand Down Expand Up @@ -267,6 +268,7 @@ final class SwiftAnalysisVisitor {
name: caseName,
apiKind: .enumCase,
functionSignature: signature,
sourceFilePath: sourceFilePath,
)

let extractedCase = ExtractedEnumCase(
Expand Down Expand Up @@ -316,6 +318,7 @@ final class SwiftAnalysisVisitor {
in: typeContext,
kind: .getter,
name: varName,
sourceFilePath: sourceFilePath,
)
}
if supportedAccessors.contains(.set) {
Expand All @@ -324,6 +327,7 @@ final class SwiftAnalysisVisitor {
in: typeContext,
kind: .setter,
name: varName,
sourceFilePath: sourceFilePath,
)
}
} catch {
Expand Down Expand Up @@ -370,6 +374,7 @@ final class SwiftAnalysisVisitor {
name: "init",
apiKind: .initializer,
functionSignature: signature,
sourceFilePath: sourceFilePath,
)

typeContext.initializers.append(extracted)
Expand Down Expand Up @@ -397,6 +402,7 @@ final class SwiftAnalysisVisitor {
in: typeContext,
kind: .subscriptGetter,
name: name,
sourceFilePath: sourceFilePath,
)
}
if accessors.contains(.set) {
Expand All @@ -405,6 +411,7 @@ final class SwiftAnalysisVisitor {
in: typeContext,
kind: .subscriptSetter,
name: name,
sourceFilePath: sourceFilePath,
)
}
} catch {
Expand Down Expand Up @@ -445,6 +452,7 @@ final class SwiftAnalysisVisitor {
in typeContext: ExtractedNominalType?,
kind: SwiftAPIKind,
name: String,
sourceFilePath: String,
) throws {
let signature: SwiftFunctionSignature

Expand Down Expand Up @@ -474,6 +482,7 @@ final class SwiftAnalysisVisitor {
name: name,
apiKind: kind,
functionSignature: signature,
sourceFilePath: sourceFilePath,
)

log.debug(
Expand Down
Loading