git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Remove syb from dead code elimination module
5c51fb8Phil Freeman
src/Language/PureScript/DeadCodeElimination.hs+4−4
@@ -16,10 +16,8 @@ module Language.PureScript.DeadCodeElimination (
16 eliminateDeadCode
16 eliminateDeadCode
17) where
17) where
18
18
19−import Data.Data
20import Data.List
19import Data.List
21import Data.Graph
20import Data.Graph
22−import Data.Generics
23import Data.Maybe (mapMaybe)
21import Data.Maybe (mapMaybe)
24
22
25import Language.PureScript.Names
23import Language.PureScript.Names
@@ -73,8 +71,10 @@ declarationsByModule (Module moduleName ds _) = concatMap go ds
73 go (PositionedDeclaration _ d) = go d
71 go (PositionedDeclaration _ d) = go d
74 go _ = []
72 go _ = []
75
73
76−dependencies :: (Data d) => ModuleName -> d -> [Key]
74+dependencies :: ModuleName -> Declaration -> [Key]
77−dependencies moduleName = nub . everything (++) (mkQ [] values)
75+dependencies moduleName =
76+ let (f, _, _, _, _) = everythingOnValues (++) (const []) values (const []) (const []) (const [])
77+ in nub . f
78 where
78 where
79 values :: Value -> [Key]
79 values :: Value -> [Key]
80 values (Var ident) = let (mn, name) = qualify moduleName ident in [(mn, Left name)]
80 values (Var ident) = let (mn, name) = qualify moduleName ident in [(mn, Left name)]