Repository : ssh://darcs.haskell.org//srv/darcs/haddock On branch : local
http://hackage.haskell.org/trac/ghc/changeset/e3137aa9c8f21dc9b71e40d9ec2af557d926b9d7 >--------------------------------------------------------------- commit e3137aa9c8f21dc9b71e40d9ec2af557d926b9d7 Author: Simon Hengel <[email protected]> Date: Thu Jan 12 17:53:37 2012 +0100 Add support for warnings >--------------------------------------------------------------- src/Haddock/Interface/Create.hs | 27 +++++++++++++++++++++++++-- 1 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/Haddock/Interface/Create.hs b/src/Haddock/Interface/Create.hs index cabfd7e..66a3e2b 100644 --- a/src/Haddock/Interface/Create.hs +++ b/src/Haddock/Interface/Create.hs @@ -79,8 +79,31 @@ createInterface tm flags modMap instIfaceMap = do (decls, _) = unzip declsWithDocs localInsts = filter (nameIsLocalOrFrom mdl . getName) instances - maps@(docMap, argMap, subMap, declMap) <- - liftErrMsg $ mkMaps dflags gre localInsts exportedNames declsWithDocs + (docs, argMap, subMap, declMap) <- liftErrMsg $ mkMaps dflags gre localInsts exportedNames declsWithDocs + + -- Attach warnings to documentation as appropriate. If there is a warning + -- for an identifier with no documentation, create a piece of documentation, + -- that just contains the warning. + let docMap = warningMap `combine` docs + where + combine :: (Ord k, Monoid a) => Map k a -> Map k a -> Map k a + combine = M.unionWith mappend + + warningMap = case warnings of + -- NOTE: warningMap may contain more elements than xs, e.g. when + -- we have a warning for: + -- + -- data Foo = Foo + -- + -- So you can not just map over xs! + (WarnSome xs) -> foldr f M.empty exportedNames + where + f name m = case lookup (getOccName name) xs of + Just x -> M.insert name (warningToDoc x) m + Nothing -> m + _ -> M.empty + + let maps = (docMap, argMap, subMap, declMap) let exports0 = fmap (reverse . map unLoc) mayExports exports _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
