Skip to content

Commit

Permalink
Only consider relevant files when collecting import statements. (#243)
Browse files Browse the repository at this point in the history
- There's no need to include all the imports we see.
- Fixes #242
  • Loading branch information
rudro authored Jun 21, 2023
1 parent c1b8b05 commit e07a778
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
5 changes: 4 additions & 1 deletion Sources/MockoloFramework/Operations/Generator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ public func generate(sourceDirs: [String],
var annotatedProtocolMap = [String: Entity]()
var pathToContentMap = [(String, Data, Int64)]()
var pathToImportsMap = ImportMap()
var relevantPaths = [String]()

signpost_begin(name: "Process input")
let t0 = CFAbsoluteTimeGetCurrent()
Expand Down Expand Up @@ -121,6 +122,7 @@ public func generate(sourceDirs: [String],
completion: { container in
pathToContentMap.append(contentsOf: container.imports)
resolvedEntities.append(container.entity)
relevantPaths.append(contentsOf: container.paths)
})
signpost_end(name: "Generate models")
let t3 = CFAbsoluteTimeGetCurrent()
Expand Down Expand Up @@ -149,7 +151,8 @@ public func generate(sourceDirs: [String],
pathToContentMap: pathToContentMap,
customImports: customImports,
excludeImports: excludeImports,
testableImports: testableImports)
testableImports: testableImports,
relevantPaths: relevantPaths)

let result = try write(candidates: candidates,
header: header,
Expand Down
6 changes: 4 additions & 2 deletions Sources/MockoloFramework/Operations/ImportsHandler.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,17 @@ func handleImports(pathToImportsMap: ImportMap,
pathToContentMap: [(String, Data, Int64)],
customImports: [String]?,
excludeImports: [String]?,
testableImports: [String]?) -> String {
testableImports: [String]?,
relevantPaths: [String]) -> String {

var importLines = [String: [String]]()
let defaultKey = ""
if importLines[defaultKey] == nil {
importLines[defaultKey] = []
}

for (_, importMap) in pathToImportsMap {
for (path, importMap) in pathToImportsMap {
guard relevantPaths.contains(path) else { continue }
for (k, v) in importMap {
if importLines[k] == nil {
importLines[k] = []
Expand Down

0 comments on commit e07a778

Please sign in to comment.