Skip to content

Commit 3d5e6ef

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

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
@@ -2512,16 +2512,17 @@ elaborateInstallPlan
25122512
shouldBuildInplaceOnly :: SolverPackage loc -> Bool
25132513
shouldBuildInplaceOnly pkg =
25142514
Set.member
2515-
(packageId pkg)
2515+
(solverId (ResolverPackage.Configured pkg))
25162516
pkgsToBuildInplaceOnly
25172517

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

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

0 commit comments

Comments
 (0)