From 54073b02290369f71640cd714e83b8ba6557663c Mon Sep 17 00:00:00 2001 From: David Binder <david.binder@uni-tuebingen.de> Date: Sun, 19 May 2024 02:30:59 +0200 Subject: [PATCH] haddock: Fix parser of @since pragma The testsuite contained tests for annotations of the form `@since foo-bar-0.5.0`, but the parser was written incorrectly. --- .../haddock-library/src/Documentation/Haddock/Parser.hs | 7 ++++--- .../test/Documentation/Haddock/ParserSpec.hs | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/utils/haddock/haddock-library/src/Documentation/Haddock/Parser.hs b/utils/haddock/haddock-library/src/Documentation/Haddock/Parser.hs index 0463e26ef0a..cff6bcc99dd 100644 --- a/utils/haddock/haddock-library/src/Documentation/Haddock/Parser.hs +++ b/utils/haddock/haddock-library/src/Documentation/Haddock/Parser.hs @@ -28,7 +28,7 @@ import Control.Applicative import Control.Arrow (first) import Control.Monad import Data.Char (chr, isAlpha, isSpace, isUpper) -import Data.List (elemIndex, intercalate, unfoldr) +import Data.List (elemIndex, intercalate, unfoldr, intersperse) import Data.Maybe (fromMaybe, mapMaybe) import Data.Monoid import qualified Data.Set as Set @@ -576,11 +576,12 @@ since = do return DocEmpty where version = do - pkg <- Parsec.optionMaybe $ Parsec.try $ package <* Parsec.char '-' + pkg <- Parsec.optionMaybe $ Parsec.try $ package ver <- decimal `Parsec.sepBy1` "." return (MetaSince pkg ver) - package = Parsec.many1 $ Parsec.alphaNum <|> Parsec.oneOf "_-" + package = combine <$> (Parsec.many1 (Parsec.letter <|> Parsec.char '_')) `Parsec.endBy1` (Parsec.char '-') + combine = concat . intersperse "-" -- | Headers inside the comment denoted with @=@ signs, up to 6 levels -- deep. diff --git a/utils/haddock/haddock-library/test/Documentation/Haddock/ParserSpec.hs b/utils/haddock/haddock-library/test/Documentation/Haddock/ParserSpec.hs index 47ed58802c1..40806b47e9e 100644 --- a/utils/haddock/haddock-library/test/Documentation/Haddock/ParserSpec.hs +++ b/utils/haddock/haddock-library/test/Documentation/Haddock/ParserSpec.hs @@ -567,7 +567,7 @@ spec = do , sinceVersion = [0, 5, 0] } } - , _doc = DocParagraph "@since foo-bar-0.5.0" + , _doc = DocEmpty } context "when given multiple times" $ do -- GitLab