git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Add missing cases to usedModules
commitcfb5c0c8a0582870bc8b232b5b063f32f05ae891 authorGary Burgess <gary.burgess@gmail.com> dateThu 21 Jan 2016, 23:29 (11 years ago) parent63e7a56
1 file changed+6−4
src/Language/PureScript/ModuleDependencies.hs+6−4
src/Language/PureScript/ModuleDependencies.hs+6−4
@@ -23,7 +23,7 @@ import Control.Monad.Error.Class (MonadError(..))
2323
2424import Data.Graph
2525import Data.List (nub)
26−import Data.Maybe (fromMaybe, mapMaybe)
26+import Data.Maybe (fromMaybe)
2727
2828import Language.PureScript.Crash
2929import Language.PureScript.AST
@@ -54,22 +54,24 @@ sortModules ms = do
5454-- Calculate a list of used modules based on explicit imports and qualified names
5555--
5656usedModules :: Declaration -> [ModuleName]
57−usedModules = let (f, _, _, _, _) = everythingOnValues (++) forDecls forValues (const []) (const []) (const []) in nub . f
57+usedModules d =
58+ let (f, _, _, _, _) = everythingOnValues (++) forDecls forValues (const []) (const []) (const [])
59+ (g, _, _, _, _) = accumTypes (everythingOnTypes (++) forTypes)
60+ in nub (f d ++ g d)
5861 where
5962 forDecls :: Declaration -> [ModuleName]
6063 forDecls (ImportDeclaration mn _ _ _) = [mn]
6164 forDecls (FixityDeclaration _ _ (Just (Qualified (Just mn) _))) = [mn]
65+ forDecls (TypeInstanceDeclaration _ _ (Qualified (Just mn) _) _ _) = [mn]
6266 forDecls _ = []
6367
6468 forValues :: Expr -> [ModuleName]
6569 forValues (Var (Qualified (Just mn) _)) = [mn]
6670 forValues (Constructor (Qualified (Just mn) _)) = [mn]
67− forValues (TypedValue _ _ ty) = forTypes ty
6871 forValues _ = []
6972
7073 forTypes :: Type -> [ModuleName]
7174 forTypes (TypeConstructor (Qualified (Just mn) _)) = [mn]
72− forTypes (ConstrainedType cs _) = mapMaybe (\(Qualified mn _, _) -> mn) cs
7375 forTypes _ = []
7476
7577-- |