Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/136b8166577610ee3f96088cd41f15e55a4fba7c

>---------------------------------------------------------------

commit 136b8166577610ee3f96088cd41f15e55a4fba7c
Author: bjorn <[email protected]>
Date:   Thu Oct 4 16:13:53 2007 +0000

    Refactoring: add Dependency.isInstalled and use it.

>---------------------------------------------------------------

 .../src/Network/Hackage/CabalInstall/Dependency.hs |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs 
b/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs
index af7544b..298ba8f 100644
--- a/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs
+++ b/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs
@@ -139,6 +139,13 @@ fulfillDependency :: Dependency -> PackageIdentifier -> 
Bool
 fulfillDependency (Dependency depName vrange) pkg
     = pkgName pkg == depName && pkgVersion pkg `withinRange` vrange
 
+-- | Checks whether there is an installed package that satisfies the
+--   given dependency.
+isInstalled :: [PackageIdentifier] -- ^Installed packages.
+            -> Dependency -> Bool
+isInstalled ps dep = any (fulfillDependency dep) ps
+
+
 getDependency :: [PkgInfo]
               -> UnresolvedDependency -> ResolvedPackage
 getDependency ps (UnresolvedDependency { dependency=dep, depOptions=opts})
@@ -180,10 +187,9 @@ resolveDependenciesAux :: ConfigFlags
                        -> IO [ResolvedPackage]
 resolveDependenciesAux cfg ps deps
     = do knownPkgs <- getKnownPackages cfg
-         let resolved = map (resolve knownPkgs) (filter isNotInstalled deps)
+         let resolved = map (resolve knownPkgs) (filter (not . isInstalled ps 
. dependency) deps)
          return resolved
-    where isNotInstalled pkgDep = not (or (map (fulfillDependency (dependency 
pkgDep)) ps))
-          resolve pkgs dep
+    where resolve pkgs dep
               = let rDep = getDependency pkgs dep
                 in case resolvedData rDep of
                     Nothing -> resolvedDepToResolvedPkg (dependency 
dep,Nothing)



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to