[commit: haddock] master: Fix issue with operators being recognized as preprocessor directives. (aa6c6de)

git at git.haskell.org git at git.haskell.org
Wed Jul 8 08:42:35 UTC 2015


Repository : ssh://git@git.haskell.org/haddock

On branch  : master
Link       : http://git.haskell.org/haddock.git/commitdiff/aa6c6deba47af1c21765ed09dc0317825aa1d78d

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

commit aa6c6deba47af1c21765ed09dc0317825aa1d78d
Author: Łukasz Hanuszczak <lukasz.hanuszczak at gmail.com>
Date:   Thu Jul 2 13:41:38 2015 +0200

    Fix issue with operators being recognized as preprocessor directives.


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

aa6c6deba47af1c21765ed09dc0317825aa1d78d
 haddock-api/src/Haddock/Backends/Hyperlinker/Parser.hs | 6 +++---
 hypsrc-test/src/Operators.hs                           | 4 ++++
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/haddock-api/src/Haddock/Backends/Hyperlinker/Parser.hs b/haddock-api/src/Haddock/Backends/Hyperlinker/Parser.hs
index 37cc537..d927aa0 100644
--- a/haddock-api/src/Haddock/Backends/Hyperlinker/Parser.hs
+++ b/haddock-api/src/Haddock/Backends/Hyperlinker/Parser.hs
@@ -156,17 +156,17 @@ classify str
     | "--" `isPrefixOf` str = TkComment
     | "{-#" `isPrefixOf` str = TkPragma
     | "{-" `isPrefixOf` str = TkComment
-classify (c:_)
+classify str@(c:_)
     | isSpace c = TkSpace
     | isDigit c = TkNumber
     | c `elem` special = TkSpecial
+    | str `elem` glyphs = TkGlyph
+    | all (`elem` symbols) str = TkOperator
     | c == '#' = TkCpp
     | c == '"' = TkString
     | c == '\'' = TkChar
 classify str
     | str `elem` keywords = TkKeyword
-    | str `elem` glyphs = TkGlyph
-    | all (`elem` symbols) str = TkOperator
     | isIdentifier str = TkIdentifier
     | otherwise = TkUnknown
 
diff --git a/hypsrc-test/src/Operators.hs b/hypsrc-test/src/Operators.hs
index bc76c2d..8e86ab0 100644
--- a/hypsrc-test/src/Operators.hs
+++ b/hypsrc-test/src/Operators.hs
@@ -16,3 +16,7 @@ a */\* b = concatMap (*** b) a
 
 (**/\**) :: [[a]] -> [[a]] -> [[a]]
 a **/\** b = zipWith (*/\*) [a +++ b] (a $$$ b)
+
+
+(#.#) :: a -> b -> (c -> (a, b))
+a #.# b = const $ (a, b)



More information about the ghc-commits mailing list