File tree 1 file changed +8
-11
lines changed
1 file changed +8
-11
lines changed Original file line number Diff line number Diff line change @@ -193,18 +193,15 @@ performInstall set pkgName PackageInfo{ repo, version } = do
193
193
pure pkgDir
194
194
195
195
getReverseDeps :: PackageSet -> PackageName -> IO [(PackageName , PackageInfo )]
196
- getReverseDeps = getReverseDeps' Set. empty
196
+ getReverseDeps db dep =
197
+ List. nub <$> foldMap go (Map. toList db)
197
198
where
198
- getReverseDeps' seen db dep = List. nub <$> foldMap (go seen db dep) (Map. toList db)
199
- go seen db dep pair@ (packageName, PackageInfo {dependencies})
200
- | packageName `Set.member` seen =
201
- exitWithErr (" Cycle in package dependencies at package " <> runPackageName packageName)
202
- | otherwise =
203
- case List. find (== dep) dependencies of
204
- Nothing -> return mempty
205
- Just _ -> do
206
- innerDeps <- getReverseDeps' (Set. insert packageName seen) db packageName
207
- return $ pair : innerDeps
199
+ go pair@ (packageName, PackageInfo {dependencies}) =
200
+ case List. find (== dep) dependencies of
201
+ Nothing -> return mempty
202
+ Just _ -> do
203
+ innerDeps <- getReverseDeps db packageName
204
+ return $ pair : innerDeps
208
205
209
206
getTransitiveDeps :: PackageSet -> [PackageName ] -> IO [(PackageName , PackageInfo )]
210
207
getTransitiveDeps db deps =
You can’t perform that action at this time.
0 commit comments