summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--ghc-exactprint.cabal4
-rw-r--r--src/Language/Haskell/GHC/ExactPrint/Parsers.hs4
-rw-r--r--tests/Roundtrip.hs6
-rw-r--r--tests/Static.hs4
5 files changed, 14 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 8f54243..ab4f398 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
-2018-00-27 v0.5.6.0
- * Support GHC 8.4 slpha2
+2018-03-11 v0.5.6.1
+ * Relax base constraints so tests can configure with GHC 8.4.1
+2018-01-27 v0.5.6.0
+ * Support GHC 8.4 alpha2
* Include test examples for GHC 8.2
* Fix parseModuleFromString to correctly handle the sheband case (@lspitzner)
2017-07-23 v0.5.5.0
diff --git a/ghc-exactprint.cabal b/ghc-exactprint.cabal
index e036049..f9b2556 100644
--- a/ghc-exactprint.cabal
+++ b/ghc-exactprint.cabal
@@ -1,5 +1,5 @@
name: ghc-exactprint
-version: 0.5.6.0
+version: 0.5.6.1
synopsis: ExactPrint for GHC
description: Using the API Annotations available from GHC 7.10.2, this
library provides a means to round trip any code that can
@@ -138,7 +138,7 @@ Test-Suite test
if impl (ghc < 7.10.2)
buildable: False
Build-depends: HUnit >= 1.2
- , base < 4.11
+ , base < 4.12
, bytestring
, containers >= 0.5
, Diff
diff --git a/src/Language/Haskell/GHC/ExactPrint/Parsers.hs b/src/Language/Haskell/GHC/ExactPrint/Parsers.hs
index 86cf19d..4037ef3 100644
--- a/src/Language/Haskell/GHC/ExactPrint/Parsers.hs
+++ b/src/Language/Haskell/GHC/ExactPrint/Parsers.hs
@@ -190,7 +190,11 @@ parseModuleFromStringInternal
parseModuleFromStringInternal dflags fileName str =
let (str1, lp) = stripLinePragmas str
res = case runParser GHC.parseModule dflags fileName str1 of
+#if __GLASGOW_HASKELL__ >= 804
+ GHC.PFailed _ ss m -> Left (ss, GHC.showSDoc dflags m)
+#else
GHC.PFailed ss m -> Left (ss, GHC.showSDoc dflags m)
+#endif
GHC.POk x pmod -> Right $ (mkApiAnns x, lp, dflags, pmod)
in postParseTransform res normalLayout
diff --git a/tests/Roundtrip.hs b/tests/Roundtrip.hs
index ffab633..e16ac8b 100644
--- a/tests/Roundtrip.hs
+++ b/tests/Roundtrip.hs
@@ -13,7 +13,7 @@ import System.Environment
import System.Exit
import System.FilePath
import System.IO
-import System.IO.Temp
+-- import System.IO.Temp
import Test.Common
import Test.CommonUtils
import Test.HUnit
@@ -31,6 +31,7 @@ verb = Debug
writeCPP :: FilePath -> IO ()
writeCPP fp = appendFileFlush cppFile (('\n' : fp))
+writeError :: FilePath -> IO ()
writeError = writeCPP
writeParseFail :: FilePath -> String -> IO ()
@@ -62,6 +63,7 @@ appendFileFlush f txt = withFile f AppendMode (\ hdl -> hPutStr hdl txt >> hFlus
-- ---------------------------------------------------------------------
+readFileIfPresent :: FilePath -> IO [String]
readFileIfPresent fileName = do
isPresent <- doesFileExist fileName
if isPresent
@@ -100,7 +102,7 @@ main = do
!parseFailList <- lines <$> readFile parseFailFile
let done = S.fromList (processedList ++ cppList ++ blackList ++ knownFailures ++ parseFailList)
tsts <- TestList <$> mapM (tests done) ds
- runTests tsts
+ _ <- runTests tsts
return ()
runTests :: Test -> IO Counts
diff --git a/tests/Static.hs b/tests/Static.hs
index c891a74..46ac987 100644
--- a/tests/Static.hs
+++ b/tests/Static.hs
@@ -54,7 +54,6 @@ page :: (FilePath, FilePath, FilePath) -> Failure -> IO ()
page (prev, out, next) (Failure res fname) = do
-- traceM out
original <- readFile fname
- -- let diff = getDiff (tokenize original) (tokenize res)
let lres = lines res
let maxLines = 50000
let diff = getGroupedDiff (lines original) (take maxLines lres)
@@ -67,9 +66,6 @@ page (prev, out, next) (Failure res fname) = do
else
-- writeFile ("failures" </> out) (mkPage (ppDiff diff) prev next original res)
writeFile (failuresHtmlDir </> out) (mkPage fname (ppDiff diff) prev next original res)
- where
- tokenize :: String -> [[String]]
- -- tokenize s = map (:[]) . lines $ s
mkPage :: FilePath -> String -> String -> String -> String -> String -> String
mkPage filename diff prev next original printed =