Skip to content

set package index asserts expensive #7503

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 3, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ module Distribution.Solver.Types.PackageIndex (
import Prelude ()
import Distribution.Solver.Compat.Prelude hiding (lookup)

import Control.Exception (assert)
import qualified Data.Map as Map
import Data.List (isInfixOf)
import qualified Data.List.NonEmpty as NE

import Distribution.Client.Utils.Assertion ( expensiveAssert )
import Distribution.Package
( PackageName, unPackageName, PackageIdentifier(..)
, Package(..), packageName, packageVersion )
Expand Down Expand Up @@ -110,7 +110,7 @@ invariant (PackageIndex m) = all (uncurry goodBucket) (Map.toList m)
--

mkPackageIndex :: Package pkg => Map PackageName [pkg] -> PackageIndex pkg
mkPackageIndex index = assert (invariant (PackageIndex index))
mkPackageIndex index = expensiveAssert (invariant (PackageIndex index))
(PackageIndex index)

internalError :: String -> a
Expand Down Expand Up @@ -157,7 +157,7 @@ fromList pkgs = mkPackageIndex
--
merge :: Package pkg => PackageIndex pkg -> PackageIndex pkg -> PackageIndex pkg
merge i1@(PackageIndex m1) i2@(PackageIndex m2) =
assert (invariant i1 && invariant i2) $
expensiveAssert (invariant i1 && invariant i2) $
mkPackageIndex (Map.unionWith mergeBuckets m1 m2)


Expand All @@ -178,7 +178,7 @@ mergeBuckets xs@(x:xs') ys@(y:ys') =
--
override :: Package pkg => PackageIndex pkg -> PackageIndex pkg -> PackageIndex pkg
override i1@(PackageIndex m1) i2@(PackageIndex m2) =
assert (invariant i1 && invariant i2) $
expensiveAssert (invariant i1 && invariant i2) $
mkPackageIndex (Map.unionWith (\_l r -> r) m1 m2)

-- | Inserts a single package into the index.
Expand Down