Skip to content

Commit 35d3de2

Browse files
committed
[ModulesGraph] Fix association between .tools targets and their packages
While inserting updated `.tools` targets to `modulesToPackages` the logic should use the package where the target resides instead of the package where it's referenced. Resolves: rdar://127369576
1 parent 9aa348e commit 35d3de2

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

Sources/PackageGraph/ModulesGraph.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,8 @@ public struct ModulesGraph {
207207
switch dependency {
208208
case .target(let targetDependency, _):
209209
allTargets.insert(targetDependency)
210-
modulesToPackages[targetDependency.id] = package
210+
modulesToPackages[targetDependency.id] =
211+
identitiesToPackages[targetDependency.packageIdentity]
211212
case .product(let productDependency, _):
212213
allProducts.insert(productDependency)
213214
productsToPackages[productDependency.id] =

Tests/PackageGraphTests/CrossCompilationPackageGraphTests.swift

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,20 @@ final class CrossCompilationPackageGraphTests: XCTestCase {
150150

151151
XCTAssertEqual(results.filter({ $0.target.buildTriple == .tools }).count, 1)
152152
XCTAssertEqual(results.filter({ $0.target.buildTriple == .destination }).count, 1)
153+
154+
for result in results {
155+
XCTAssertEqual(result.target.packageIdentity, .plain("swift-syntax"))
156+
XCTAssertEqual(graph.package(for: result.target)?.identity, .plain("swift-syntax"))
157+
}
158+
}
159+
160+
result.checkTargets("SwiftCompilerPlugin") { results in
161+
XCTAssertEqual(results.count, 2)
162+
163+
for result in results {
164+
XCTAssertEqual(result.target.packageIdentity, .plain("swift-syntax"))
165+
XCTAssertEqual(graph.package(for: result.target)?.identity, .plain("swift-syntax"))
166+
}
153167
}
154168
}
155169
}

0 commit comments

Comments
 (0)