diff options
author | David Waern <david.waern@gmail.com> | 2008-07-12 16:55:21 +0000 |
---|---|---|
committer | David Waern <david.waern@gmail.com> | 2008-07-12 16:55:21 +0000 |
commit | fdd8e13d1462e63556a90bdaecf694bc7ba4c10c (patch) | |
tree | 69818916e3e09869a81964c080b5a08adbf38c54 | |
parent | 32868490786d0328c59097915d5c56d3220d2a86 (diff) |
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.
-rw-r--r-- | src/Haddock/GHC/Typecheck.hs | 1 | ||||
-rw-r--r-- | src/Haddock/Interface/Create.hs | 9 | ||||
-rw-r--r-- | src/Haddock/Types.hs | 1 |
3 files changed, 3 insertions, 8 deletions
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] } |