Skip to content

Commit c0403ad

Browse files
committed
[Explicit Module Builds] Avoid re-visiting Swift modules in the dependency graph when generating PCMArg sets
1 parent a50d48e commit c0403ad

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

Sources/SwiftDriver/ExplicitModuleBuilds/ClangVersionedDependencyResolution.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ private extension InterModuleDependencyGraph {
104104
let mainModuleId: ModuleDependencyId = .swift(mainModuleName)
105105
var pcmArgSetMap: [ModuleDependencyId : Set<[String]>] = [:]
106106

107+
var visitedSwiftModules: Set<ModuleDependencyId> = []
108+
107109
func visit(_ moduleId: ModuleDependencyId,
108110
pathPCMArtSet: Set<[String]>,
109111
pcmArgSetMap: inout [ModuleDependencyId : Set<[String]>])
@@ -113,6 +115,11 @@ private extension InterModuleDependencyGraph {
113115
}
114116
switch moduleId {
115117
case .swift:
118+
if visitedSwiftModules.contains(moduleId) {
119+
return
120+
} else {
121+
visitedSwiftModules.insert(moduleId)
122+
}
116123
guard case .swift(let swiftModuleDetails) = moduleInfo.details else {
117124
throw Driver.Error.malformedModuleDependency(moduleId.moduleName,
118125
"no Swift `details` object")

0 commit comments

Comments
 (0)