From 406030f2782590799e44470da7ca80e85f3cf026 Mon Sep 17 00:00:00 2001
From: Merijn Verstraaten <merijn@inconsistent.nl>
Date: Wed, 4 Oct 2017 16:03:13 +0200
Subject: Inhibit output of coverage information for hidden modules. (#687)

* Inhibit output of coverage information for hidden modules.

* Add changelog entry.
---
 CHANGES.md                           |  3 +++
 haddock-api/src/Haddock/Interface.hs | 13 +++++++------
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index 3e3498c3..0b4ca29d 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -2,6 +2,9 @@
 
  * to be released
 
+ * Haddock no longer reports coverage statistics for hidden modules. By default
+   cabal-install marks all package internal modules as hidden.
+
  * Haddock now writes additional information about the documentation to `meta.json`
 
  * Fix renaming of type variables after specializing instance method signatures (#613)
diff --git a/haddock-api/src/Haddock/Interface.hs b/haddock-api/src/Haddock/Interface.hs
index f2d099b3..25755cff 100644
--- a/haddock-api/src/Haddock/Interface.hs
+++ b/haddock-api/src/Haddock/Interface.hs
@@ -206,12 +206,13 @@ processModule verbosity modsum flags modMap instIfaceMap = do
                          then drop (length ms) n
                          else n
 
-    out verbosity normal coverageMsg
-    when (Flag_NoPrintMissingDocs `notElem` flags
-          && not (null undocumentedExports && header)) $ do
-      out verbosity normal "  Missing documentation for:"
-      unless header $ out verbosity normal "    Module header"
-      mapM_ (out verbosity normal . ("    " ++)) undocumentedExports
+    when (OptHide `notElem` ifaceOptions interface) $ do
+      out verbosity normal coverageMsg
+      when (Flag_NoPrintMissingDocs `notElem` flags
+            && not (null undocumentedExports && header)) $ do
+        out verbosity normal "  Missing documentation for:"
+        unless header $ out verbosity normal "    Module header"
+        mapM_ (out verbosity normal . ("    " ++)) undocumentedExports
     interface' <- liftIO $ evaluate interface
     return (Just interface')
   else
-- 
cgit v1.2.3