@@ -5,10 +5,10 @@ Copyright :
55License : BSD3
66Maintainer : The Idris Community.
77-}
8−{-# LANGUAGE DeriveDataTypeable, DeriveGeneric,
9− FlexibleInstances, OverloadedStrings, StandaloneDeriving #-}
8+{-# LANGUAGE DeriveDataTypeable, DeriveGeneric, FlexibleInstances,
9+ OverloadedStrings, StandaloneDeriving #-}
1010
11−module IRTS.JavaScript.LangTransforms( used_defs
11+module IRTS.JavaScript.LangTransforms( removeDeadCode
1212 ) where
1313
1414
@@ -56,33 +56,33 @@ mapMapListKeys _ [] x = x
5656mapMapListKeys f (t:r) x = mapMapListKeys f r $ Map.adjust f t x
5757
5858
59−extract_globs :: Map Name LDecl -> LDecl -> [Name]
60−extract_globs defs (LConstructor _ _ _) = []
61−extract_globs defs (LFun _ _ _ e) =
59+extractGlobs :: Map Name LDecl -> LDecl -> [Name]
60+extractGlobs defs (LConstructor _ _ _) = []
61+extractGlobs defs (LFun _ _ _ e) =
6262 let f (LV (Glob x)) = Just x
6363 f (LLazyApp x _) = Just x
6464 f _ = Nothing
6565 in [x | Just x <- map f $ universe e, Map.member x defs]
6666
67−used_functions :: Map Name LDecl -> Set Name -> [Name] -> [Name]
68−used_functions _ _ [] = []
69−used_functions alldefs done names =
67+usedFunctions :: Map Name LDecl -> Set Name -> [Name] -> [Name]
68+usedFunctions _ _ [] = []
69+usedFunctions alldefs done names =
7070 let decls = catMaybes $ map (\x -> Map.lookup x alldefs) names
71− used_names = (nub $ concat $ map (extract_globs alldefs) decls) \\ names
71+ used_names = (nub $ concat $ map (extractGlobs alldefs) decls) \\ names
7272 new_names = filter (\x -> not $ Set.member x done) used_names
73− in used_names ++ used_functions alldefs (Set.union done $ Set.fromList new_names) new_names
73+ in used_names ++ usedFunctions alldefs (Set.union done $ Set.fromList new_names) new_names
7474
7575
76−used_decls :: Map Name LDecl -> [Name] -> Map Name LDecl
77−used_decls dcls start =
78− let used = reverse $ start ++ used_functions dcls (Set.fromList start) start
76+usedDecls :: Map Name LDecl -> [Name] -> Map Name LDecl
77+usedDecls dcls start =
78+ let used = reverse $ start ++ usedFunctions dcls (Set.fromList start) start
7979 in restrictKeys dcls (Set.fromList used) --catMaybes $ map (\x -> Map.lookup x dcls) used
8080
8181getUsedConstructors :: Map Name LDecl -> Set Name
8282getUsedConstructors x = Set.fromList [ n | LCon _ _ n _ <- universeBi x]
8383
84−remove_unused_branches :: Set Name -> Map Name LDecl -> Map Name LDecl
85−remove_unused_branches used x =
84+removeUnusedBranches :: Set Name -> Map Name LDecl -> Map Name LDecl
85+removeUnusedBranches used x =
8686 transformBi f x
8787 where
8888 f :: [LAlt] -> [LAlt]
@@ -91,9 +91,9 @@ remove_unused_branches used x =
9191 else r
9292 f x = x
9393
94−used_defs :: Map Name LDecl -> [Name] -> Map Name LDecl
95−used_defs dcls start =
96− let used = used_decls dcls start
97− remCons = remove_unused_branches (getUsedConstructors used) used
94+removeDeadCode :: Map Name LDecl -> [Name] -> Map Name LDecl
95+removeDeadCode dcls start =
96+ let used = usedDecls dcls start
97+ remCons = removeUnusedBranches (getUsedConstructors used) used
9898 in if Map.keys remCons == Map.keys dcls then remCons
99− else used_defs remCons start
99+ else removeDeadCode remCons start