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