@@ -103,7 +103,7 @@ listVersions :: ( MonadCatch m
103103 , HasPlatformReq env
104104 , HasGHCupInfo env
105105 )
106- => Maybe Tool
106+ => [ Tool ]
107107 -> [ListCriteria ]
108108 -> Bool
109109 -> Bool
@@ -119,17 +119,16 @@ listVersions lt' criteria hideOld showNightly days = do
119119 stacks <- getInstalledStacks
120120 hlsGHCVs <- fmap mkTVer <$> hlsGHCVersions
121121
122- go lt' hlsGHCVs cSet cabals hlsSet' hlses sSet stacks
122+ go ( if null lt' then [ GHC , Cabal , HLS , Stack , GHCup ] else lt') hlsGHCVs cSet cabals hlsSet' hlses sSet stacks
123123 where
124- go lt hlsGHCVs cSet cabals hlsSet' hlses sSet stacks = do
125- case lt of
126- Just t -> do
127- GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
128- -- get versions from GHCupDownloads
129- let avTools = availableToolVersions dls t
130- lr <- filter' <$> forM (Map. toList avTools) (toListResult t hlsGHCVs cSet cabals hlsSet' hlses sSet stacks)
131-
132- case t of
124+ go [] _hlsGHCVs _cSet _cabals _hlsSet' _hlses _sSet _stacks = pure []
125+ go (lt: lts) hlsGHCVs cSet cabals hlsSet' hlses sSet stacks = do
126+ GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
127+ -- get versions from GHCupDownloads
128+ let avTools = availableToolVersions dls lt
129+ lr <- filter' <$> forM (Map. toList avTools) (toListResult lt hlsGHCVs cSet cabals hlsSet' hlses sSet stacks)
130+
131+ r <- case lt of
133132 GHC -> do
134133 slr <- strayGHCs avTools
135134 pure (sort (slr ++ lr))
@@ -145,13 +144,8 @@ listVersions lt' criteria hideOld showNightly days = do
145144 GHCup -> do
146145 let cg = maybeToList $ currentGHCup avTools
147146 pure (sort (cg ++ lr))
148- Nothing -> do
149- ghcvers <- go (Just GHC ) hlsGHCVs cSet cabals hlsSet' hlses sSet stacks
150- cabalvers <- go (Just Cabal ) hlsGHCVs cSet cabals hlsSet' hlses sSet stacks
151- hlsvers <- go (Just HLS ) hlsGHCVs cSet cabals hlsSet' hlses sSet stacks
152- ghcupvers <- go (Just GHCup ) hlsGHCVs cSet cabals hlsSet' hlses sSet stacks
153- stackvers <- go (Just Stack ) hlsGHCVs cSet cabals hlsSet' hlses sSet stacks
154- pure (ghcvers <> cabalvers <> hlsvers <> stackvers <> ghcupvers)
147+ rn <- go lts hlsGHCVs cSet cabals hlsSet' hlses sSet stacks
148+ pure (r <> rn)
155149 strayGHCs :: ( MonadCatch m
156150 , MonadReader env m
157151 , HasDirs env
0 commit comments