Skip to content

Commit cdee761

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

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

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

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2523,16 +2523,17 @@ elaborateInstallPlan
25232523
shouldBuildInplaceOnly :: SolverPackage loc -> Bool
25242524
shouldBuildInplaceOnly pkg =
25252525
Set.member
2526-
(packageId pkg)
2526+
(solverId (ResolverPackage.Configured pkg))
25272527
pkgsToBuildInplaceOnly
25282528

2529-
pkgsToBuildInplaceOnly :: Set PackageId
2529+
-- The reverse dependencies of solver packages which match a package id in pkgLocalToProject.
2530+
pkgsToBuildInplaceOnly :: Set SolverId
25302531
pkgsToBuildInplaceOnly =
25312532
Set.fromList
2532-
[ packageId pkg
2533-
| stage <- stages
2534-
, let solverIds = [PlannedId stage pkgId | pkgId <- Set.toList pkgsLocalToProject]
2535-
, pkg <- SolverInstallPlan.reverseDependencyClosure solverPlan solverIds
2533+
[ solverId pkg
2534+
| spkg <- SolverInstallPlan.toList solverPlan
2535+
, packageId spkg `elem` pkgsLocalToProject
2536+
, pkg <- SolverInstallPlan.reverseDependencyClosure solverPlan [solverId spkg]
25362537
]
25372538

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

0 commit comments

Comments
 (0)