From 978dbc859df09eb991d9ccc0911276cc9655b783 Mon Sep 17 00:00:00 2001
From: Alec Theriault <alec.theriault@gmail.com>
Date: Mon, 26 Mar 2018 23:35:59 -0700
Subject: @since includes package name (#749)

* Metadoc stores a package name

This means that '@since' annotations can be package aware.

* Get the package name the right way

This should extract the package name for `@since` annotations the
right way. I had to move `modulePackageInfo` around to do this and,
in the process, I took the liberty to update it.

Since it appears that finding the package name is something that can
fail, I added a warning for this case.

* Silence warnings

* Hide package for local 'since' annotations

As discussed, this is still the usual case (and we should avoid being
noisy for it).

Although this commit is large, it is basically only about threading a
'Maybe Package' from 'Haddock.render' all the way to
'Haddock.Backends.Xhtml.DocMarkup.renderMeta'.

* Bump binary interface version

* Add a '--since-qual' option

This controls when to qualify since annotations with the package they
come from. The default is always, but I've left an 'external' variant
where only those annotations coming from outside of the current
package are qualified.

* Make ParserSpec work

* Make Fixtures work

* Use package name even if package version is not available

The @since stuff needs only the package name passed in, so it
makes sense to not be forced to pass in a version too.
---
 .../test/Documentation/Haddock/ParserSpec.hs            | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

(limited to 'haddock-library/test')

diff --git a/haddock-library/test/Documentation/Haddock/ParserSpec.hs b/haddock-library/test/Documentation/Haddock/ParserSpec.hs
index c605e2c2..86ed3b35 100644
--- a/haddock-library/test/Documentation/Haddock/ParserSpec.hs
+++ b/haddock-library/test/Documentation/Haddock/ParserSpec.hs
@@ -24,8 +24,15 @@ instance IsString (Doc String) where
 instance IsString a => IsString (Maybe a) where
   fromString = Just . fromString
 
+emptyMeta :: Meta
+emptyMeta =
+  Meta {
+    _version = Nothing
+  , _package = Nothing
+  }
+
 parseParas :: String -> MetaDoc () String
-parseParas = overDoc Parse.toRegular . Parse.parseParas
+parseParas = overDoc Parse.toRegular . Parse.parseParas Nothing
 
 parseString :: String -> Doc String
 parseString = Parse.toRegular . Parse.parseString
@@ -375,17 +382,17 @@ spec = do
     context "when parsing @since" $ do
       it "adds specified version to the result" $ do
         parseParas "@since 0.5.0" `shouldBe`
-          MetaDoc { _meta = Meta { _version = Just [0,5,0] }
+          MetaDoc { _meta = emptyMeta { _version = Just [0,5,0] }
                   , _doc = DocEmpty }
 
       it "ignores trailing whitespace" $ do
         parseParas "@since 0.5.0 \t " `shouldBe`
-          MetaDoc { _meta = Meta { _version = Just [0,5,0] }
+          MetaDoc { _meta = emptyMeta { _version = Just [0,5,0] }
                   , _doc = DocEmpty }
 
       it "does not allow trailing input" $ do
         parseParas "@since 0.5.0 foo" `shouldBe`
-          MetaDoc { _meta = Meta { _version = Nothing }
+          MetaDoc { _meta = emptyMeta { _version = Nothing }
                   , _doc = DocParagraph "@since 0.5.0 foo" }
 
 
@@ -395,7 +402,7 @@ spec = do
               "@since 0.5.0"
             , "@since 0.6.0"
             , "@since 0.7.0"
-            ] `shouldBe` MetaDoc { _meta = Meta { _version = Just [0,7,0] }
+            ] `shouldBe` MetaDoc { _meta = emptyMeta { _version = Just [0,7,0] }
                                  , _doc = DocEmpty }
 
 
-- 
cgit v1.2.3