Skip to content

Commit d29d3ab

Browse files
committed
fix(cabal-install): fix pkgsToBuildInPlaceOnly
Determine packages to build in-place by their solver id, not their package id.
1 parent 39d04e1 commit d29d3ab

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

cabal-install/src/Distribution/Client/ProjectPlanning.hs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2513,16 +2513,17 @@ elaborateInstallPlan
25132513
shouldBuildInplaceOnly :: SolverPackage loc -> Bool
25142514
shouldBuildInplaceOnly pkg =
25152515
Set.member
2516-
(packageId pkg)
2516+
(solverId (ResolverPackage.Configured pkg))
25172517
pkgsToBuildInplaceOnly
25182518

2519-
pkgsToBuildInplaceOnly :: Set PackageId
2519+
-- The reverse dependencies of solver packages which match a package id in pkgLocalToProject.
2520+
pkgsToBuildInplaceOnly :: Set SolverId
25202521
pkgsToBuildInplaceOnly =
2521-
Set.fromList [
2522-
packageId pkg
2523-
| stage <- stages
2524-
, let solverIds = [PlannedId stage pkgId | pkgId <- Set.toList pkgsLocalToProject]
2525-
, pkg <- SolverInstallPlan.reverseDependencyClosure solverPlan solverIds
2522+
Set.fromList
2523+
[ solverId pkg
2524+
| spkg <- SolverInstallPlan.toList solverPlan
2525+
, packageId spkg `elem` pkgsLocalToProject
2526+
, pkg <- SolverInstallPlan.reverseDependencyClosure solverPlan [solverId spkg]
25262527
]
25272528

25282529
isLocalToProject :: Package pkg => pkg -> Bool

0 commit comments

Comments
 (0)