diff options
| author | David Waern <david.waern@gmail.com> | 2008-11-15 22:59:33 +0000 | 
|---|---|---|
| committer | David Waern <david.waern@gmail.com> | 2008-11-15 22:59:33 +0000 | 
| commit | 41fbe99fb430b4de1ec7aac30a67e8023821f449 (patch) | |
| tree | 2109c31dd127868532d4676b97d680fdb8097817 /src/Haddock | |
| parent | ca24f467c6aeaa56bcdc04cc3f58eadc1abf93ba (diff) | |
Store hidden modules in .haddock files
We store documentation for an entity in the 'InstalledInterface' of the
definition site module, and never in the same structure for a module which
re-exports the entity. So when a client of the Haddock library wants to look up
some documentation, he/she might need to access a hidden module. But we
currently don't store hidden modules in the .haddock files.
So we add the hidden modules and the Haddock options to the .haddock files.
The options will be used to filter the module list to obtain the visible
modules only, which is necessary for generating the contents and index for
installed packages.
Diffstat (limited to 'src/Haddock')
| -rw-r--r-- | src/Haddock/InterfaceFile.hs | 12 | ||||
| -rw-r--r-- | src/Haddock/Types.hs | 6 | 
2 files changed, 11 insertions, 7 deletions
diff --git a/src/Haddock/InterfaceFile.hs b/src/Haddock/InterfaceFile.hs index 62f19275..e04e5b3e 100644 --- a/src/Haddock/InterfaceFile.hs +++ b/src/Haddock/InterfaceFile.hs @@ -60,13 +60,13 @@ binaryInterfaceMagic = 0xD0Cface  -- when one of our own (stored) datatypes is changed.   binaryInterfaceVersion :: Word16  #if __GLASGOW_HASKELL__ == 608 && __GHC_PATCHLEVEL__ == 2 -binaryInterfaceVersion = 2 +binaryInterfaceVersion = 5  #endif           #if __GLASGOW_HASKELL__ == 608 && __GHC_PATCHLEVEL__ == 3 -binaryInterfaceVersion = 3 +binaryInterfaceVersion = 6  #endif             #if __GLASGOW_HASKELL__ >= 609 -binaryInterfaceVersion = 4 +binaryInterfaceVersion = 7  #endif @@ -353,12 +353,13 @@ instance Binary InterfaceFile where  instance Binary InstalledInterface where -  put_ bh (InstalledInterface modu info docMap exps visExps) = do +  put_ bh (InstalledInterface modu info docMap exps visExps opts) = do      put_ bh modu      put_ bh info      put_ bh (Map.toList docMap)      put_ bh exps      put_ bh visExps +    put_ bh opts    get bh = do      modu    <- get bh @@ -366,7 +367,8 @@ instance Binary InstalledInterface where      docMap  <- get bh      exps    <- get bh      visExps <- get bh -    return (InstalledInterface modu info (Map.fromList docMap) exps visExps) +    opts    <- get bh +    return (InstalledInterface modu info (Map.fromList docMap) exps visExps opts)  instance Binary DocOption where diff --git a/src/Haddock/Types.hs b/src/Haddock/Types.hs index 88b6f87a..44cc9161 100644 --- a/src/Haddock/Types.hs +++ b/src/Haddock/Types.hs @@ -167,7 +167,8 @@ data InstalledInterface = InstalledInterface {    instInfo           :: HaddockModInfo Name,    instDocMap         :: Map Name (HsDoc DocName),    instExports        :: [Name], -  instVisibleExports :: [Name] +  instVisibleExports :: [Name], +  instOptions        :: [DocOption]  } @@ -178,7 +179,8 @@ toInstalledIface interface = InstalledInterface {    instInfo           = ifaceInfo           interface,    instDocMap         = ifaceRnDocMap       interface,    instExports        = ifaceExports        interface, -  instVisibleExports = ifaceVisibleExports interface +  instVisibleExports = ifaceVisibleExports interface, +  instOptions        = ifaceOptions        interface  }  | 
