Skip to content

Commit d3c8e1a

Browse files
authored
Revert "crash on cyclic dependencies in reverse dependency lookup also (#105)" (#109)
This reverts commit f55533c.
1 parent 439c7f6 commit d3c8e1a

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

app/Main.hs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -193,18 +193,15 @@ performInstall set pkgName PackageInfo{ repo, version } = do
193193
pure pkgDir
194194

195195
getReverseDeps :: PackageSet -> PackageName -> IO [(PackageName, PackageInfo)]
196-
getReverseDeps = getReverseDeps' Set.empty
196+
getReverseDeps db dep =
197+
List.nub <$> foldMap go (Map.toList db)
197198
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
208205

209206
getTransitiveDeps :: PackageSet -> [PackageName] -> IO [(PackageName, PackageInfo)]
210207
getTransitiveDeps db deps =

0 commit comments

Comments
 (0)