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

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/704a7c89f48eda8f21f1bb2863662c4cf9c6e56b

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

commit 704a7c89f48eda8f21f1bb2863662c4cf9c6e56b
Author: Duncan Coutts <[email protected]>
Date:   Mon Apr 18 21:14:36 2011 +0000

    Distinguish the various impossible errors in the solver
    Will make tracking down problems easier in future.

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

 .../Distribution/Client/Dependency/TopDown.hs      |   22 ++++++++++---------
 1 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/cabal-install/Distribution/Client/Dependency/TopDown.hs 
b/cabal-install/Distribution/Client/Dependency/TopDown.hs
index cd36b53..e51d6e8 100644
--- a/cabal-install/Distribution/Client/Dependency/TopDown.hs
+++ b/cabal-install/Distribution/Client/Dependency/TopDown.hs
@@ -203,7 +203,7 @@ addDeps =
   foldr $ \pkgname cs ->
             case Constraints.addTarget pkgname cs of
               Satisfiable cs' () -> cs'
-              _                  -> impossible
+              _                  -> impossible "addDeps unsatisfiable"
 
 constrainDeps :: SelectedPackage -> [(Dependency, Bool)] -> Constraints
               -> [PackageId]
@@ -211,11 +211,11 @@ constrainDeps :: SelectedPackage -> [(Dependency, Bool)] 
-> Constraints
 constrainDeps pkg []         cs discard =
   case addPackageSelectConstraint (packageId pkg) cs of
     Satisfiable cs' discard' -> Right (cs', discard' ++ discard)
-    _                        -> impossible
+    _                        -> impossible "constrainDeps unsatisfiable(1)"
 constrainDeps pkg ((dep, installedConstraint):deps) cs discard =
   case addPackageDependencyConstraint (packageId pkg) dep installedConstraint 
cs of
     Satisfiable cs' discard' -> constrainDeps pkg deps cs' (discard' ++ 
discard)
-    Unsatisfiable            -> impossible
+    Unsatisfiable            -> impossible "constrainDeps unsatisfiable(2)"
     ConflictsWith conflicts  ->
       Left (DependencyConflict pkg dep installedConstraint conflicts)
 
@@ -288,7 +288,7 @@ addTopLevelTargets (pkg:pkgs) cs =
   case Constraints.addTarget pkg cs of
     Satisfiable cs' ()       -> addTopLevelTargets pkgs cs'
     Unsatisfiable            -> Fail (NoSuchPackage pkg)
-    ConflictsWith _conflicts -> impossible
+    ConflictsWith _conflicts -> impossible "addTopLevelTargets conflicts"
 
 
 addTopLevelConstraints :: [PackageConstraint] -> Constraints
@@ -353,7 +353,7 @@ pruneBottomUp platform comp constraints =
       case addPackageExcludeConstraint (packageId pkg) reason cs of
         Satisfiable cs' [pkgid]| packageId pkg == pkgid
                          -> Step (ExcludeUnconfigurable pkgid) (rest cs')
-        Satisfiable _ _  -> impossible
+        Satisfiable _ _  -> impossible "pruneBottomUp satisfiable"
         _                -> Fail $ ConfigureFailed pkg
                               [ (dep, Constraints.conflicting cs dep)
                               | dep <- missing ]
@@ -532,8 +532,10 @@ finaliseSelectedPackages pref selected constraints =
     finaliseSelected (SourceOnly              apkg) = finaliseSource Nothing 
apkg
     finaliseSelected (InstalledAndSource ipkg apkg) =
       case PackageIndex.lookupPackageId remainingChoices (packageId ipkg) of
-        Nothing                          -> impossible --picked package not in 
constraints
-        Just (SourceOnly _)           -> impossible --to constrain to avail 
only
+                                        --picked package not in constraints
+        Nothing                       -> impossible "finaliseSelected no pkg"
+                                        -- to constrain to avail only:
+        Just (SourceOnly _)           -> impossible "finaliseSelected src only"
         Just (InstalledOnly _)        -> finaliseInstalled ipkg
         Just (InstalledAndSource _ _) -> finaliseSource (Just ipkg) apkg
 
@@ -545,7 +547,7 @@ finaliseSelectedPackages pref selected constraints =
 
     pickRemaining mipkg dep@(Dependency _name versionRange) =
           case PackageIndex.lookupDependency remainingChoices dep of
-            []        -> impossible
+            []        -> impossible "pickRemaining no pkg"
             [pkg']    -> pkg'
             remaining -> assert (checkIsPaired remaining)
                        $ maximumBy bestByPref remaining
@@ -909,8 +911,8 @@ displayDep = display . simplifyDependency
 -- * Utils
 -- ------------------------------------------------------------
 
-impossible :: a
-impossible = internalError "impossible"
+impossible :: String -> a
+impossible msg = internalError $ "assertion failure: " ++ msg
 
 internalError :: String -> a
 internalError msg = error $ "internal error: " ++ msg



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

Reply via email to