From 3f3410bdff63c7875aa7efc29d31ccb098ea91c3 Mon Sep 17 00:00:00 2001
From: Duncan Coutts <duncan@community.haskell.org>
Date: Wed, 22 Jul 2015 14:10:52 +0100
Subject: [PATCH] Remove a couple uses of the InstalledPackage wrapper type

Removed from the InstallPlan and solver interface.
The InstalledPackage is really just there for the benefit of the old
TopDown solver which needs to know source deps.
---
 .../Client/Dependency/Modular/ConfiguredConversion.hs  |  4 +---
 .../Distribution/Client/Dependency/TopDown.hs          |  3 ++-
 cabal-install/Distribution/Client/Dependency/Types.hs  |  7 ++++---
 cabal-install/Distribution/Client/InstallPlan.hs       | 10 ++++++----
 4 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/cabal-install/Distribution/Client/Dependency/Modular/ConfiguredConversion.hs b/cabal-install/Distribution/Client/Dependency/Modular/ConfiguredConversion.hs
index b57e037749..714eb84539 100644
--- a/cabal-install/Distribution/Client/Dependency/Modular/ConfiguredConversion.hs
+++ b/cabal-install/Distribution/Client/Dependency/Modular/ConfiguredConversion.hs
@@ -12,16 +12,14 @@ import Distribution.Client.Dependency.Modular.Configured
 import Distribution.Client.Dependency.Modular.Package
 
 import Distribution.Client.ComponentDeps (ComponentDeps)
-import qualified Distribution.Client.ComponentDeps as CD
 
 
 convCP :: SI.InstalledPackageIndex -> CI.PackageIndex SourcePackage ->
           CP QPN -> ResolverPackage
 convCP iidx sidx (CP qpi fa es ds) =
   case convPI qpi of
-    Left  pi -> PreExisting $ InstalledPackage
+    Left  pi -> PreExisting
                   (fromJust $ SI.lookupInstalledPackageId iidx pi)
-                  (map confSrcId $ CD.nonSetupDeps ds')
     Right pi -> Configured $ ConfiguredPackage
                   (fromJust $ CI.lookupPackageId sidx pi)
                   fa
diff --git a/cabal-install/Distribution/Client/Dependency/TopDown.hs b/cabal-install/Distribution/Client/Dependency/TopDown.hs
index 0e00aab748..c919055527 100644
--- a/cabal-install/Distribution/Client/Dependency/TopDown.hs
+++ b/cabal-install/Distribution/Client/Dependency/TopDown.hs
@@ -292,7 +292,8 @@ topDownResolver' platform cinfo installedPkgIndex sourcePkgIndex
       $ finaliseSelectedPackages preferences selected' constraints'
 
     toResolverPackage :: FinalSelectedPackage -> ResolverPackage
-    toResolverPackage (SelectedInstalled pkg) = PreExisting pkg
+    toResolverPackage (SelectedInstalled (InstalledPackage pkg _))
+                                              = PreExisting pkg
     toResolverPackage (SelectedSource    pkg) = Configured  pkg
 
 addTopLevelTargets :: [PackageName]
diff --git a/cabal-install/Distribution/Client/Dependency/Types.hs b/cabal-install/Distribution/Client/Dependency/Types.hs
index 8c0c833dfe..184028a473 100644
--- a/cabal-install/Distribution/Client/Dependency/Types.hs
+++ b/cabal-install/Distribution/Client/Dependency/Types.hs
@@ -46,8 +46,7 @@ import Data.Monoid
 #endif
 
 import Distribution.Client.Types
-         ( OptionalStanza(..), SourcePackage(..), ConfiguredPackage
-         , InstalledPackage )
+         ( OptionalStanza(..), SourcePackage(..), ConfiguredPackage )
 
 import Distribution.Compat.ReadP
          ( (<++) )
@@ -56,6 +55,8 @@ import qualified Distribution.Compat.ReadP as Parse
          ( pfail, munch1 )
 import Distribution.PackageDescription
          ( FlagAssignment, FlagName(..) )
+import Distribution.InstalledPackageInfo
+         ( InstalledPackageInfo )
 import qualified Distribution.Client.PackageIndex as PackageIndex
          ( PackageIndex )
 import Distribution.Simple.PackageIndex ( InstalledPackageIndex )
@@ -128,7 +129,7 @@ type DependencyResolver = Platform
 --
 -- This is like the 'InstallPlan.PlanPackage' but with fewer cases.
 --
-data ResolverPackage = PreExisting InstalledPackage
+data ResolverPackage = PreExisting InstalledPackageInfo
                      | Configured  ConfiguredPackage
 
 -- | Per-package constraints. Package constraints must be respected by the
diff --git a/cabal-install/Distribution/Client/InstallPlan.hs b/cabal-install/Distribution/Client/InstallPlan.hs
index 0661f13517..0822ee5a39 100644
--- a/cabal-install/Distribution/Client/InstallPlan.hs
+++ b/cabal-install/Distribution/Client/InstallPlan.hs
@@ -49,9 +49,9 @@ module Distribution.Client.InstallPlan (
 import Distribution.Client.Types
          ( ConfiguredPackage(..)
          , ReadyPackage(..), readyPackageToConfiguredPackage
-         , InstalledPackage, BuildFailure, BuildSuccess(..)
-         , InstalledPackage(..), fakeInstalledPackageId
+         , BuildFailure, BuildSuccess(..)
          , PackageFixedDeps(..)
+         , fakeInstalledPackageId
          )
 import Distribution.Package
          ( PackageIdentifier(..), PackageName(..), Package(..)
@@ -74,6 +74,8 @@ import Distribution.Compiler
          ( CompilerInfo(..) )
 import Distribution.Simple.Utils
          ( intercalate )
+import Distribution.InstalledPackageInfo
+         ( InstalledPackageInfo )
 import qualified Distribution.InstalledPackageInfo as Installed
 
 import Data.Maybe
@@ -141,7 +143,7 @@ type PlanIndex = PackageIndex PlanPackage
 -- 'PackageInstalled' instance it would be too easy to get this wrong (and,
 -- for instance, call graph traversal functions from Cabal rather than from
 -- cabal-install). Instead, see 'PackageFixedDeps'.
-data PlanPackage = PreExisting InstalledPackage
+data PlanPackage = PreExisting InstalledPackageInfo
                  | Configured  ConfiguredPackage
                  | Processing  ReadyPackage
                  | Installed   ReadyPackage BuildSuccess
@@ -294,7 +296,7 @@ ready plan = assert check readyPackages
         Just (Configured  _)                            -> Nothing
         Just (Processing  _)                            -> Nothing
         Just (Failed    _ _)                            -> internalError depOnFailed
-        Just (PreExisting (InstalledPackage instPkg _)) -> Just instPkg
+        Just (PreExisting instPkg)                      -> Just instPkg
         Just (Installed _ (BuildOk _ _ (Just instPkg))) -> Just instPkg
         Just (Installed _ (BuildOk _ _ Nothing))        -> internalError depOnNonLib
         Nothing                                         -> internalError incomplete
-- 
GitLab