From fdd8e13d1462e63556a90bdaecf694bc7ba4c10c Mon Sep 17 00:00:00 2001 From: David Waern Date: Sat, 12 Jul 2008 16:55:21 +0000 Subject: Get the all locally defined names from GHC API We previously had some code to compute all locally defined names in a module including subordinate names. We don't need it since we can get the names from modInfoTyThings in the GHC API. --- src/Haddock/GHC/Typecheck.hs | 1 + src/Haddock/Interface/Create.hs | 9 +-------- src/Haddock/Types.hs | 1 + 3 files changed, 3 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/Haddock/GHC/Typecheck.hs b/src/Haddock/GHC/Typecheck.hs index 2a9811c9..f0626231 100644 --- a/src/Haddock/GHC/Typecheck.hs +++ b/src/Haddock/GHC/Typecheck.hs @@ -75,6 +75,7 @@ mkGhcModule (mod, file, checkedMod) dynflags = GhcModule { ghcGroup = group, ghcMbExports = mbExports, ghcExportedNames = modInfoExports modInfo, + ghcDefinedNames = map getName $ modInfoTyThings modInfo, ghcNamesInScope = fromJust $ modInfoTopLevelScope modInfo, ghcInstances = modInfoInstances modInfo } diff --git a/src/Haddock/Interface/Create.hs b/src/Haddock/Interface/Create.hs index 60d657c0..b5ebe255 100644 --- a/src/Haddock/Interface/Create.hs +++ b/src/Haddock/Interface/Create.hs @@ -57,10 +57,8 @@ createInterface ghcMod flags modMap = do entities = (nubBy sameName . getTopEntities) group exports = fmap (reverse . map unLoc) (ghcMbExports ghcMod) entityNames_ = entityNames entities - subNames = allSubNames group - localNames = entityNames_ ++ subNames + localNames = ghcDefinedNames ghcMod subMap = mkSubMap group --- declMap = mkDeclMap entityNames_ group declMap = mkDeclMap localNames group docMap = mkDocMap group ignoreExps = Flag_IgnoreAllExports `elem` flags @@ -255,11 +253,6 @@ mkDocMap group = Map.fromList (topDeclDocs ++ classMethDocs ++ recordFieldDocs) ConDeclField lname _ (Just (L _ doc)) <- fields ] -allSubNames :: HsGroup Name -> [Name] -allSubNames group = - concat [ tail (map unLoc (tyClDeclNames tycld)) | L _ tycld <- hs_tyclds group ] - - mkSubMap :: HsGroup Name -> Map Name [Name] mkSubMap group = Map.fromList [ (name, subs) | L _ tycld <- hs_tyclds group, let name:subs = map unLoc (tyClDeclNames tycld) ] diff --git a/src/Haddock/Types.hs b/src/Haddock/Types.hs index f120bc85..38d56b49 100644 --- a/src/Haddock/Types.hs +++ b/src/Haddock/Types.hs @@ -100,6 +100,7 @@ data GhcModule = GhcModule { ghcGroup :: HsGroup Name, ghcMbExports :: Maybe [LIE Name], ghcExportedNames :: [Name], + ghcDefinedNames :: [Name], ghcNamesInScope :: [Name], ghcInstances :: [Instance] } -- cgit v1.2.3