From 83f2461ef92e945e032098d800dd95b084a22bf5 Mon Sep 17 00:00:00 2001
From: Kristen Kozak <grayjay@wordroute.com>
Date: Sun, 11 Sep 2016 12:18:16 -0700
Subject: [PATCH] Document how solver quickcheck tests create valid
 ComponentDeps.

---
 .../Distribution/Solver/Modular/QuickCheck.hs          | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/cabal-install/tests/UnitTests/Distribution/Solver/Modular/QuickCheck.hs b/cabal-install/tests/UnitTests/Distribution/Solver/Modular/QuickCheck.hs
index a8cb06f444..01fae02532 100644
--- a/cabal-install/tests/UnitTests/Distribution/Solver/Modular/QuickCheck.hs
+++ b/cabal-install/tests/UnitTests/Distribution/Solver/Modular/QuickCheck.hs
@@ -224,10 +224,14 @@ arbitraryExInst pn v pkgs = do
 
 arbitraryComponentDeps :: TestDb -> Gen (ComponentDeps [ExampleDependency])
 arbitraryComponentDeps (TestDb []) = return $ CD.fromList []
-arbitraryComponentDeps db = CD.fromList . dedupNamedComponents <$>
-                            boundedListOf 5 (arbitraryComponentDep db)
+arbitraryComponentDeps db =
+    -- dedupComponentNames removes components with duplicate names, for example,
+    -- 'ComponentExe x' and 'ComponentTest x', and then CD.fromList combines
+    -- duplicate unnamed components.
+    CD.fromList . dedupComponentNames <$>
+    boundedListOf 5 (arbitraryComponentDep db)
   where
-    dedupNamedComponents =
+    dedupComponentNames =
         nubBy ((\x y -> isJust x && isJust y && x == y) `on` componentName . fst)
 
     componentName :: Component -> Maybe String
-- 
GitLab