File tree Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -128,11 +128,12 @@ irreflexiveDependencyOn xs ys =
128128
129129-- | Get all down-stream dependencies of a node
130130transitiveDependencies :: Ord node => node -> Graph node -> Set node
131- transitiveDependencies x (Graph e _) = go (Set. singleton x) x
131+ transitiveDependencies x (Graph e _) = go mempty (Set. toList $ fromMaybe mempty $ Map. lookup x e)
132132 where
133- go seen y = ys <> foldMap (go $ Set. insert y seen) (Set. difference ys seen)
134- where
135- ys = fromMaybe mempty (Map. lookup y e)
133+ go deps [] = deps
134+ go deps (y: ys)
135+ | y `Set.member` deps = go deps ys
136+ | otherwise = go (Set. insert y deps) (ys ++ Set. toList (fromMaybe mempty $ Map. lookup y e))
136137
137138-- | Take the transitive closure of the graph
138139transitiveClosure :: Ord node => Graph node -> Graph node
You can’t perform that action at this time.
0 commit comments