Repository : ssh://darcs.haskell.org//srv/darcs/haddock

On branch  : ghc-7.6

http://hackage.haskell.org/trac/ghc/changeset/37a4e2c3b71280fdee7b217dd9ddff090ed34873

>---------------------------------------------------------------

commit 37a4e2c3b71280fdee7b217dd9ddff090ed34873
Author: Simon Hengel <[email protected]>
Date:   Sun Oct 14 16:03:43 2012 +0200

    Properly handle deprecation messages for re-exported things (fixes #220)

>---------------------------------------------------------------

 src/Haddock/Interface/Create.hs                    |    7 ++++---
 src/Haddock/Types.hs                               |    5 +++++
 tests/html-tests/tests/DeprecatedReExport.hs       |    3 +++
 ...ction2.html.ref => DeprecatedReExport.html.ref} |   15 +++++++++++----
 ...4.html.ref => mini_DeprecatedReExport.html.ref} |    4 ++--
 5 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/src/Haddock/Interface/Create.hs b/src/Haddock/Interface/Create.hs
index 2ffe8de..6c121ad 100644
--- a/src/Haddock/Interface/Create.hs
+++ b/src/Haddock/Interface/Create.hs
@@ -92,7 +92,9 @@ createInterface tm flags modMap instIfaceMap = do
 
   warningMap <- liftErrMsg $ mkWarningMap dflags warnings gre exportedNames
 
-  exportItems <- mkExportItems modMap mdl warningMap gre exportedNames decls 
maps exports
+  let allWarnings = M.unions (warningMap : map ifaceWarningMap (M.elems 
modMap))
+
+  exportItems <- mkExportItems modMap mdl allWarnings gre exportedNames decls 
maps exports
                    instances instIfaceMap dflags
 
   let !visibleNames = mkVisibleNames exportItems opts
@@ -135,6 +137,7 @@ createInterface tm flags modMap instIfaceMap = do
   , ifaceModuleAliases   = aliases
   , ifaceInstances       = instances
   , ifaceHaddockCoverage = coverage
+  , ifaceWarningMap      = warningMap
   }
 
 mkAliasMap :: DynFlags -> Maybe RenamedSource -> M.Map Module ModuleName
@@ -170,8 +173,6 @@ lookupModuleDyn dflags Nothing mdlName =
 -- Warnings
 -------------------------------------------------------------------------------
 
-type WarningMap = DocMap Name
-
 mkWarningMap :: DynFlags -> Warnings -> GlobalRdrEnv -> [Name] -> ErrMsgM 
WarningMap
 mkWarningMap dflags warnings gre exps = case warnings of
   NoWarnings  -> return M.empty
diff --git a/src/Haddock/Types.hs b/src/Haddock/Types.hs
index 9be4674..181ea02 100644
--- a/src/Haddock/Types.hs
+++ b/src/Haddock/Types.hs
@@ -114,8 +114,13 @@ data Interface = Interface
     -- | The number of haddockable and haddocked items in the module, as a
     -- tuple. Haddockable items are the exports and the module itself.
   , ifaceHaddockCoverage :: !(Int, Int)
+
+    -- | Warnings for things defined in this module.
+  , ifaceWarningMap :: !WarningMap
   }
 
+type WarningMap = DocMap Name
+
 
 -- | A subset of the fields of 'Interface' that we store in the interface
 -- files.
diff --git a/tests/html-tests/tests/DeprecatedReExport.hs 
b/tests/html-tests/tests/DeprecatedReExport.hs
new file mode 100644
index 0000000..10a8c6a
--- /dev/null
+++ b/tests/html-tests/tests/DeprecatedReExport.hs
@@ -0,0 +1,3 @@
+module DeprecatedReExport (foo) where
+
+import DeprecatedFunction
diff --git a/tests/html-tests/tests/DeprecatedFunction2.html.ref 
b/tests/html-tests/tests/DeprecatedReExport.html.ref
similarity index 89%
copy from tests/html-tests/tests/DeprecatedFunction2.html.ref
copy to tests/html-tests/tests/DeprecatedReExport.html.ref
index b5068c8..1798895 100644
--- a/tests/html-tests/tests/DeprecatedFunction2.html.ref
+++ b/tests/html-tests/tests/DeprecatedReExport.html.ref
@@ -3,13 +3,13 @@
 ><head
   ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
      /><title
-    >DeprecatedFunction2</title
+    >DeprecatedReExport</title
     ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
      /><script src="haddock-util.js" type="text/javascript"
     ></script
     ><script type="text/javascript"
     >//<![CDATA[
-window.onload = function () 
{pageLoad();setSynopsis("mini_DeprecatedFunction2.html");};
+window.onload = function () 
{pageLoad();setSynopsis("mini_DeprecatedReExport.html");};
 //]]>
 </script
     ></head
@@ -39,7 +39,7 @@ window.onload = function () 
{pageLoad();setSynopsis("mini_DeprecatedFunction2.ht
            ></tr
          ></table
        ><p class="caption"
-       >DeprecatedFunction2</p
+       >DeprecatedReExport</p
        ></div
       ><div id="synopsis"
       ><p id="control.syn" class="caption expander" 
onclick="toggleSection('syn')"
@@ -66,9 +66,16 @@ window.onload = function () 
{pageLoad();setSynopsis("mini_DeprecatedFunction2.ht
          ><div class="doc"
          ><div class="warning"
            ><p
-             >Deprecated: use bar instead
+             >Deprecated: use <code
+               ><a href=""
+                 >bar</a
+                 ></code
+               > instead
 </p
              ></div
+           ><p
+           >some documentation for foo
+</p
            ></div
          ></div
        ></div
diff --git a/tests/html-tests/tests/mini_Bug4.html.ref 
b/tests/html-tests/tests/mini_DeprecatedReExport.html.ref
similarity index 92%
copy from tests/html-tests/tests/mini_Bug4.html.ref
copy to tests/html-tests/tests/mini_DeprecatedReExport.html.ref
index b403e94..de5dcf9 100644
--- a/tests/html-tests/tests/mini_Bug4.html.ref
+++ b/tests/html-tests/tests/mini_DeprecatedReExport.html.ref
@@ -3,7 +3,7 @@
 ><head
   ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
      /><title
-    >Bug4</title
+    >DeprecatedReExport</title
     ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
      /><script src="haddock-util.js" type="text/javascript"
     ></script
@@ -16,7 +16,7 @@ window.onload = function () {pageLoad();};
   ><body id="mini"
   ><div id="module-header"
     ><p class="caption"
-      >Bug4</p
+      >DeprecatedReExport</p
       ></div
     ><div id="interface"
     ><div class="top"



_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to