@@ -30,23 +30,23 @@ import Language.PureScript.TypeChecker.Monad
3030-- |
3131-- Eliminate all declarations which are not a transitive dependency of the entry point module
3232--
33- eliminateDeadCode :: Environment -> [String ] -> [Module ] -> [Module ]
33+ eliminateDeadCode :: Environment -> [ModuleName ] -> [Module ] -> [Module ]
3434eliminateDeadCode env entryPoints ms =
3535 let declarations = concatMap (declarationsByModule env) ms
3636 (graph, _, vertexFor) = graphFromEdges $ map (\ (key, deps) -> (key, key, deps)) declarations
37- entryPointVertices = mapMaybe (vertexFor . fst ) . filter (\ ((ModuleName ( ProperName mn) , _), _) -> mn `elem` entryPoints) $ declarations
38- in flip map ms $ \ (Module moduleName ds) -> Module moduleName (filter (isUsed (ModuleName moduleName) graph vertexFor entryPointVertices) ds)
37+ entryPointVertices = mapMaybe (vertexFor . fst ) . filter (\ ((mn , _), _) -> mn `elem` entryPoints) $ declarations
38+ in flip map ms $ \ (Module moduleName ds) -> Module moduleName (filter (isUsed (moduleName) graph vertexFor entryPointVertices) ds)
3939
4040type Key = (ModuleName , Either Ident ProperName )
4141
4242declarationsByModule :: Environment -> Module -> [(Key , [Key ])]
4343declarationsByModule env (Module moduleName ds) = concatMap go $ ds
4444 where
4545 go :: Declaration -> [(Key , [Key ])]
46- go d@ (ValueDeclaration name _ _ _) = [((ModuleName moduleName, Left name), dependencies env (ModuleName moduleName) d)]
47- go (DataDeclaration _ _ dctors) = map (\ (name, _) -> ((ModuleName moduleName, Right name), [] )) dctors
48- go (ExternDeclaration _ name _ _) = [((ModuleName moduleName, Left name), [] )]
49- go d@ (BindingGroupDeclaration names) = map (\ (name, _) -> ((ModuleName moduleName, Left name), dependencies env ( ModuleName moduleName) d)) names
46+ go d@ (ValueDeclaration name _ _ _) = [((moduleName, Left name), dependencies env (moduleName) d)]
47+ go (DataDeclaration _ _ dctors) = map (\ (name, _) -> ((moduleName, Right name), [] )) dctors
48+ go (ExternDeclaration _ name _ _) = [((moduleName, Left name), [] )]
49+ go d@ (BindingGroupDeclaration names) = map (\ (name, _) -> ((moduleName, Left name), dependencies env moduleName d)) names
5050 go (DataBindingGroupDeclaration ds) = concatMap go ds
5151 go _ = []
5252
0 commit comments