[remove unexported names from ho files on disk in typechecking information
John Meacham <john@repetae.net>**20070828202534] hunk ./FrontEnd/Infix.hs 19
-module FrontEnd.Infix (buildFixityMap, infixHsModule, FixityMap,size, infixStatement) where
+module FrontEnd.Infix (buildFixityMap, infixHsModule, FixityMap,size, infixStatement, restrictFixityMap) where
hunk ./FrontEnd/Infix.hs 33
---type OpKey      = (Module, HsIdentifier)
---type SymbolMap = FiniteMap OpKey FixityInfo
hunk ./FrontEnd/Infix.hs 42
+restrictFixityMap :: (Name -> Bool) -> FixityMap -> FixityMap
+restrictFixityMap f (FixityMap fm) = FixityMap (Map.filterWithKey (\k _ -> f k) fm)
+
+
hunk ./FrontEnd/Tc/Module.hs 9
-import qualified Data.Map as Map
hunk ./FrontEnd/Tc/Module.hs 10
+import qualified Data.Map as Map
+import qualified Data.Set as Set
hunk ./FrontEnd/Tc/Module.hs 13
-import FrontEnd.Class
hunk ./FrontEnd/Tc/Module.hs 19
+import FrontEnd.Class
hunk ./FrontEnd/Tc/Module.hs 21
+import FrontEnd.Exports
hunk ./FrontEnd/Tc/Module.hs 25
-import FrontEnd.Tc.Monad
hunk ./FrontEnd/Tc/Module.hs 26
+import FrontEnd.Tc.Monad
hunk ./FrontEnd/Tc/Module.hs 29
-import FrontEnd.Exports
-import Info.Properties
+import FrontEnd.Warning
hunk ./FrontEnd/Tc/Module.hs 32
+import Info.Properties
hunk ./FrontEnd/Tc/Module.hs 35
-import qualified FlagDump as FD
-import qualified HsPretty
-import Util.SetLike
hunk ./FrontEnd/Tc/Module.hs 40
-import FrontEnd.Warning
+import Util.SetLike
+import qualified FlagDump as FD
+import qualified HsPretty
hunk ./FrontEnd/Tc/Module.hs 53
-    tiDataLiftedInstances :: Map.Map Name HsDecl,
hunk ./FrontEnd/Tc/Module.hs 244
-    let getMod x = case getModule x of
-                     Just m  -> m
-                     Nothing -> error ("getModule "++show x++" => Nothing")
-        interesting x = isGlobal x
-    let externalEnv = Map.filterWithKey (\ x _ -> interesting x && (getMod x `elem` map modInfoName ms)) localVarEnv `Map.union` noDefaultSigs
hunk ./FrontEnd/Tc/Module.hs 245
-    let externalKindEnv = restrictKindEnv (\ x  -> interesting x && (getMod x `elem` map modInfoName ms)) kindInfo
hunk ./FrontEnd/Tc/Module.hs 249
-        expAssumps = localDConsEnv `Map.union` externalEnv
+        allExports = Set.fromList (concatMap modInfoExport ms)
+        externalKindEnv = restrictKindEnv (\ x  -> isGlobal x && (getModule x `elem` map (Just . modInfoName) ms)) kindInfo
hunk ./FrontEnd/Tc/Module.hs 252
-        hoExports = Map.fromList [ (modInfoName m,modInfoExport m) | m <- ms ],
-        hoDefs =  Map.fromList [ (x,(y,z)) | (x,y,z) <- concat $ map modInfoDefs ms],
-        hoAssumps = expAssumps,
-        hoFixities = thisFixityMap,
-        hoKinds = externalKindEnv,
-        hoClassHierarchy = smallClassHierarchy,
-        hoProps = pragmaProps,
-        hoTypeSynonyms = thisTypeSynonyms
-
+            hoExports = Map.fromList [ (modInfoName m,modInfoExport m) | m <- ms ],
+            hoDefs =  Map.fromList [ (x,(y,filter (`member` allExports) z)) | (x,y,z) <- concat $ map modInfoDefs ms, x `member` allExports],
+            hoAssumps = Map.filterWithKey (\k _ -> k `member` allExports) allAssumps,
+            hoFixities = restrictFixityMap (`member` allExports) thisFixityMap,
+            -- TODO - this contains unexported names, we should filter these before writing to disk.
+            hoKinds = externalKindEnv,
+            --hoKinds = restrictKindEnv (`member` allExports) kindInfo,
+            hoClassHierarchy = smallClassHierarchy,
+            hoTypeSynonyms = restrictTypeSynonyms (`member` allExports) thisTypeSynonyms,
+            hoProps = pragmaProps
hunk ./FrontEnd/Tc/Module.hs 264
-            --tiDataLiftedInstances = Map.fromList [ (getDeclName d,d) | d <- liftedInstances],
-            tiDataLiftedInstances = error "tiDataLiftedInstances not used", -- Map.fromList [ (getDeclName d,d) | d <- ds],
hunk ./FrontEnd/TypeSynonyms.hs 6
+    restrictTypeSynonyms,
hunk ./FrontEnd/TypeSynonyms.hs 36
+restrictTypeSynonyms :: (Name -> Bool) -> TypeSynonyms -> TypeSynonyms
+restrictTypeSynonyms f (TypeSynonyms fm) = TypeSynonyms (Map.filterWithKey (\k _ -> f k) fm)
+
hunk ./Ho/Library.hs 14
-import Ho.Type
hunk ./Main.hs 214
-        decls | fopts FO.Boxy = tiDataDecls tiData ++ [ x | x@HsForeignExport {} <- originalDecls ]
-              | otherwise = concat [ hsModuleDecls  m | (_,m) <- tiDataModules tiData ] ++ Map.elems (tiDataLiftedInstances tiData)
+        decls  = tiDataDecls tiData ++ [ x | x@HsForeignExport {} <- originalDecls ]