ghc-exactprint 0.5.6.0 → 0.5.6.1
raw patch · 5 files changed
+14/−10 lines, 5 filesdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base
API changes (from Hackage documentation)
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: annotationsToComments :: forall m_aGOl. MonadFree AnnotationF m_aGOl => [AnnKeywordId] -> m_aGOl ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: annotationsToComments :: forall m_aGQL. MonadFree AnnotationF m_aGQL => [AnnKeywordId] -> m_aGQL ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: countAnns :: forall m_aGMj. MonadFree AnnotationF m_aGMj => AnnKeywordId -> m_aGMj Int
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: countAnns :: forall m_aGOJ. MonadFree AnnotationF m_aGOJ => AnnKeywordId -> m_aGOJ Int
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: getSrcSpanForKw :: forall m_aGNE. MonadFree AnnotationF m_aGNE => SrcSpan -> AnnKeywordId -> m_aGNE SrcSpan
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: getSrcSpanForKw :: forall m_aGQ4. MonadFree AnnotationF m_aGQ4 => SrcSpan -> AnnKeywordId -> m_aGQ4 SrcSpan
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: ifInContext :: forall m_aGR0. MonadFree AnnotationF m_aGR0 => Set AstContext -> Annotated () -> Annotated () -> m_aGR0 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: ifInContext :: forall m_aGTq. MonadFree AnnotationF m_aGTq => Set AstContext -> Annotated () -> Annotated () -> m_aGTq ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markAnnBeforeAnn :: forall m_aGT2. MonadFree AnnotationF m_aGT2 => AnnKeywordId -> AnnKeywordId -> m_aGT2 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markAnnBeforeAnn :: forall m_aGVs. MonadFree AnnotationF m_aGVs => AnnKeywordId -> AnnKeywordId -> m_aGVs ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markEOF :: forall m_aFZv. MonadFree AnnotationF m_aFZv => m_aFZv ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markEOF :: forall m_aG1V. MonadFree AnnotationF m_aG1V => m_aG1V ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markExternal :: forall m_aGIS. MonadFree AnnotationF m_aGIS => SrcSpan -> AnnKeywordId -> String -> m_aGIS ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markExternal :: forall m_aGLi. MonadFree AnnotationF m_aGLi => SrcSpan -> AnnKeywordId -> String -> m_aGLi ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markInside :: forall m_aGIf. MonadFree AnnotationF m_aGIf => AnnKeywordId -> m_aGIf ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markInside :: forall m_aGKF. MonadFree AnnotationF m_aGKF => AnnKeywordId -> m_aGKF ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markInstead :: forall m_aGGT. MonadFree AnnotationF m_aGGT => AnnKeywordId -> KeywordId -> m_aGGT ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markInstead :: forall m_aGJj. MonadFree AnnotationF m_aGJj => AnnKeywordId -> KeywordId -> m_aGJj ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markMany :: forall m_aGJB. MonadFree AnnotationF m_aGJB => AnnKeywordId -> m_aGJB ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markMany :: forall m_aGM1. MonadFree AnnotationF m_aGM1 => AnnKeywordId -> m_aGM1 ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markManyOptional :: forall m_aGKe. MonadFree AnnotationF m_aGKe => AnnKeywordId -> m_aGKe ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markManyOptional :: forall m_aGME. MonadFree AnnotationF m_aGME => AnnKeywordId -> m_aGME ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrim :: forall m_aGKR. MonadFree AnnotationF m_aGKR => AnnKeywordId -> Int -> Maybe String -> m_aGKR ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrim :: forall m_aGNh. MonadFree AnnotationF m_aGNh => AnnKeywordId -> Int -> Maybe String -> m_aGNh ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrimOptional :: forall m_aGLA. MonadFree AnnotationF m_aGLA => AnnKeywordId -> Int -> Maybe String -> m_aGLA ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrimOptional :: forall m_aGO0. MonadFree AnnotationF m_aGO0 => AnnKeywordId -> Int -> Maybe String -> m_aGO0 ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOutside :: forall m_aGHz. MonadFree AnnotationF m_aGHz => AnnKeywordId -> KeywordId -> m_aGHz ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOutside :: forall m_aGJZ. MonadFree AnnotationF m_aGJZ => AnnKeywordId -> KeywordId -> m_aGJZ ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPPOptional :: forall m_aGGd. MonadFree AnnotationF m_aGGd => AnnKeywordId -> Maybe String -> m_aGGd ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPPOptional :: forall m_aGID. MonadFree AnnotationF m_aGID => AnnKeywordId -> Maybe String -> m_aGID ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPrim :: forall m_aGFx. MonadFree AnnotationF m_aGFx => AnnKeywordId -> Maybe String -> m_aGFx ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPrim :: forall m_aGHX. MonadFree AnnotationF m_aGHX => AnnKeywordId -> Maybe String -> m_aGHX ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: setContextLevel :: forall m_aGPB. MonadFree AnnotationF m_aGPB => Set AstContext -> Int -> Annotated () -> m_aGPB ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: setContextLevel :: forall m_aGS1. MonadFree AnnotationF m_aGS1 => Set AstContext -> Int -> Annotated () -> m_aGS1 ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: storeOriginalSrcSpan :: forall m_aGMX. MonadFree AnnotationF m_aGMX => SrcSpan -> AnnKey -> m_aGMX AnnKey
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: storeOriginalSrcSpan :: forall m_aGPn. MonadFree AnnotationF m_aGPn => SrcSpan -> AnnKey -> m_aGPn AnnKey
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: tellContext :: forall m_aGSp. MonadFree AnnotationF m_aGSp => Set AstContext -> m_aGSp ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: tellContext :: forall m_aGUP. MonadFree AnnotationF m_aGUP => Set AstContext -> m_aGUP ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: unsetContext :: forall m_aGQk. MonadFree AnnotationF m_aGQk => AstContext -> Annotated () -> m_aGQk ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: unsetContext :: forall m_aGSK. MonadFree AnnotationF m_aGSK => AstContext -> Annotated () -> m_aGSK ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKey :: forall m_aGOY. MonadFree AnnotationF m_aGOY => [(SrcSpan, Annotated ())] -> m_aGOY ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKey :: forall m_aGRo. MonadFree AnnotationF m_aGRo => [(SrcSpan, Annotated ())] -> m_aGRo ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKeyContexts :: forall m_aGRJ. MonadFree AnnotationF m_aGRJ => ListContexts -> [(SrcSpan, Annotated ())] -> m_aGRJ ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKeyContexts :: forall m_aGU9. MonadFree AnnotationF m_aGU9 => ListContexts -> [(SrcSpan, Annotated ())] -> m_aGU9 ()
Files
- ChangeLog +4/−2
- ghc-exactprint.cabal +2/−2
- src/Language/Haskell/GHC/ExactPrint/Parsers.hs +4/−0
- tests/Roundtrip.hs +4/−2
- tests/Static.hs +0/−4
ChangeLog view
@@ -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
ghc-exactprint.cabal view
@@ -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 @@ if impl (ghc < 7.10.2) buildable: False Build-depends: HUnit >= 1.2- , base < 4.11+ , base < 4.12 , bytestring , containers >= 0.5 , Diff
src/Language/Haskell/GHC/ExactPrint/Parsers.hs view
@@ -190,7 +190,11 @@ 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
tests/Roundtrip.hs view
@@ -13,7 +13,7 @@ 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 @@ writeCPP :: FilePath -> IO () writeCPP fp = appendFileFlush cppFile (('\n' : fp)) +writeError :: FilePath -> IO () writeError = writeCPP writeParseFail :: FilePath -> String -> IO ()@@ -62,6 +63,7 @@ -- --------------------------------------------------------------------- +readFileIfPresent :: FilePath -> IO [String] readFileIfPresent fileName = do isPresent <- doesFileExist fileName if isPresent@@ -100,7 +102,7 @@ !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
tests/Static.hs view
@@ -54,7 +54,6 @@ 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 @@ 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 =