From fdd8e13d1462e63556a90bdaecf694bc7ba4c10c Mon Sep 17 00:00:00 2001
From: David Waern <david.waern@gmail.com>
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(-)

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