ghc-exactprint 0.6.1 → 0.6.2
raw patch · 4 files changed
+19/−46 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: annotationsToComments :: forall m_aLXS. MonadFree AnnotationF m_aLXS => [AnnKeywordId] -> m_aLXS ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: annotationsToComments :: forall m_aM14. MonadFree AnnotationF m_aM14 => [AnnKeywordId] -> m_aM14 ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: countAnns :: forall m_aLUu. MonadFree AnnotationF m_aLUu => AnnKeywordId -> m_aLUu Int
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: countAnns :: forall m_aLXG. MonadFree AnnotationF m_aLXG => AnnKeywordId -> m_aLXG Int
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: getSrcSpanForKw :: forall m_aLWJ. MonadFree AnnotationF m_aLWJ => SrcSpan -> AnnKeywordId -> m_aLWJ SrcSpan
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: getSrcSpanForKw :: forall m_aLZV. MonadFree AnnotationF m_aLZV => SrcSpan -> AnnKeywordId -> m_aLZV SrcSpan
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: ifInContext :: forall m_aM2l. MonadFree AnnotationF m_aM2l => Set AstContext -> Annotated () -> Annotated () -> m_aM2l ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: ifInContext :: forall m_aM5x. MonadFree AnnotationF m_aM5x => Set AstContext -> Annotated () -> Annotated () -> m_aM5x ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markAnnBeforeAnn :: forall m_aM5J. MonadFree AnnotationF m_aM5J => AnnKeywordId -> AnnKeywordId -> m_aM5J ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markAnnBeforeAnn :: forall m_aM8V. MonadFree AnnotationF m_aM8V => AnnKeywordId -> AnnKeywordId -> m_aM8V ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markEOF :: forall m_aKZY. MonadFree AnnotationF m_aKZY => m_aKZY ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markEOF :: forall m_aL3a. MonadFree AnnotationF m_aL3a => m_aL3a ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markExternal :: forall m_aLON. MonadFree AnnotationF m_aLON => SrcSpan -> AnnKeywordId -> String -> m_aLON ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markExternal :: forall m_aLRZ. MonadFree AnnotationF m_aLRZ => SrcSpan -> AnnKeywordId -> String -> m_aLRZ ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markInside :: forall m_aLNI. MonadFree AnnotationF m_aLNI => AnnKeywordId -> m_aLNI ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markInside :: forall m_aLQU. MonadFree AnnotationF m_aLQU => AnnKeywordId -> m_aLQU ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markInstead :: forall m_aLLs. MonadFree AnnotationF m_aLLs => AnnKeywordId -> KeywordId -> m_aLLs ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markInstead :: forall m_aLOE. MonadFree AnnotationF m_aLOE => AnnKeywordId -> KeywordId -> m_aLOE ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markMany :: forall m_aLPY. MonadFree AnnotationF m_aLPY => AnnKeywordId -> m_aLPY ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markMany :: forall m_aLTa. MonadFree AnnotationF m_aLTa => AnnKeywordId -> m_aLTa ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markManyOptional :: forall m_aLR3. MonadFree AnnotationF m_aLR3 => AnnKeywordId -> m_aLR3 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markManyOptional :: forall m_aLUf. MonadFree AnnotationF m_aLUf => AnnKeywordId -> m_aLUf ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrim :: forall m_aLS8. MonadFree AnnotationF m_aLS8 => AnnKeywordId -> Int -> Maybe String -> m_aLS8 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrim :: forall m_aLVk. MonadFree AnnotationF m_aLVk => AnnKeywordId -> Int -> Maybe String -> m_aLVk ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrimOptional :: forall m_aLTj. MonadFree AnnotationF m_aLTj => AnnKeywordId -> Int -> Maybe String -> m_aLTj ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrimOptional :: forall m_aLWv. MonadFree AnnotationF m_aLWv => AnnKeywordId -> Int -> Maybe String -> m_aLWv ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOutside :: forall m_aLMA. MonadFree AnnotationF m_aLMA => AnnKeywordId -> KeywordId -> m_aLMA ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOutside :: forall m_aLPM. MonadFree AnnotationF m_aLPM => AnnKeywordId -> KeywordId -> m_aLPM ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPPOptional :: forall m_aLKk. MonadFree AnnotationF m_aLKk => AnnKeywordId -> Maybe String -> m_aLKk ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPPOptional :: forall m_aLNw. MonadFree AnnotationF m_aLNw => AnnKeywordId -> Maybe String -> m_aLNw ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPrim :: forall m_aLJc. MonadFree AnnotationF m_aLJc => AnnKeywordId -> Maybe String -> m_aLJc ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPrim :: forall m_aLMo. MonadFree AnnotationF m_aLMo => AnnKeywordId -> Maybe String -> m_aLMo ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: setContextLevel :: forall m_aM02. MonadFree AnnotationF m_aM02 => Set AstContext -> Int -> Annotated () -> m_aM02 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: setContextLevel :: forall m_aM3e. MonadFree AnnotationF m_aM3e => Set AstContext -> Int -> Annotated () -> m_aM3e ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: storeOriginalSrcSpan :: forall m_aLVA. MonadFree AnnotationF m_aLVA => SrcSpan -> AnnKey -> m_aLVA AnnKey
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: storeOriginalSrcSpan :: forall m_aLYM. MonadFree AnnotationF m_aLYM => SrcSpan -> AnnKey -> m_aLYM AnnKey
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: tellContext :: forall m_aM4E. MonadFree AnnotationF m_aM4E => Set AstContext -> m_aM4E ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: tellContext :: forall m_aM7Q. MonadFree AnnotationF m_aM7Q => Set AstContext -> m_aM7Q ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: unsetContext :: forall m_aM1d. MonadFree AnnotationF m_aM1d => AstContext -> Annotated () -> m_aM1d ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: unsetContext :: forall m_aM4p. MonadFree AnnotationF m_aM4p => AstContext -> Annotated () -> m_aM4p ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKey :: forall m_aLYX. MonadFree AnnotationF m_aLYX => [(SrcSpan, Annotated ())] -> m_aLYX ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKey :: forall m_aM29. MonadFree AnnotationF m_aM29 => [(SrcSpan, Annotated ())] -> m_aM29 ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKeyContexts :: forall m_aM3w. MonadFree AnnotationF m_aM3w => ListContexts -> [(SrcSpan, Annotated ())] -> m_aM3w ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKeyContexts :: forall m_aM6I. MonadFree AnnotationF m_aM6I => ListContexts -> [(SrcSpan, Annotated ())] -> m_aM6I ()
Files
- ChangeLog +2/−0
- ghc-exactprint.cabal +1/−1
- src/Language/Haskell/GHC/ExactPrint/Preprocess.hs +16/−0
- tests/examples/ghc88/PersistUniqueTest.hs +0/−45
ChangeLog view
@@ -1,3 +1,5 @@+2019-08-28 v0.6.2+ * Support GHC 8.8.1 (release candidate) 2019-05-27 v0.6.1 * Support GHC 8.8 (alpha1) 2019-03-01 v0.6
ghc-exactprint.cabal view
@@ -1,5 +1,5 @@ name: ghc-exactprint-version: 0.6.1+version: 0.6.2 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
src/Language/Haskell/GHC/ExactPrint/Preprocess.hs view
@@ -218,11 +218,27 @@ hsc_env <- GHC.getSession let dfs = GHC.hsc_dflags hsc_env new_env = hsc_env { GHC.hsc_dflags = injectCppOptions cppOptions dfs }+#if __GLASGOW_HASKELL__ >= 808+ -- (dflags', hspp_fn) <-+ r <- GHC.liftIO $ GHC.preprocess new_env src_fn Nothing (Just (GHC.Cpp GHC.HsSrcFile))+ case r of+ Left err -> error $ showErrorMessages err+ Right (dflags', hspp_fn) -> do+ buf <- GHC.liftIO $ GHC.hGetStringBuffer hspp_fn+ txt <- GHC.liftIO $ readFileGhc hspp_fn+ return (txt, buf, dflags')+#else (dflags', hspp_fn) <- GHC.liftIO $ GHC.preprocess new_env (src_fn, Just (GHC.Cpp GHC.HsSrcFile)) buf <- GHC.liftIO $ GHC.hGetStringBuffer hspp_fn txt <- GHC.liftIO $ readFileGhc hspp_fn return (txt, buf, dflags')+#endif++#if __GLASGOW_HASKELL__ >= 808+showErrorMessages :: GHC.ErrorMessages -> String+showErrorMessages msgs = intercalate "\n" $ map show $ GHC.bagToList msgs+#endif injectCppOptions :: CppOptions -> GHC.DynFlags -> GHC.DynFlags injectCppOptions CppOptions{..} dflags =
− tests/examples/ghc88/PersistUniqueTest.hs
@@ -1,45 +0,0 @@-{-# LANGUAGE QuasiQuotes, TemplateHaskell, CPP, GADTs, TypeFamilies, OverloadedStrings, FlexibleContexts, EmptyDataDecls, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses #-}-module PersistUniqueTest where--import Init---- mpsGeneric = False is due to a bug or at least lack of a feature in mkKeyTypeDec TH.hs-#if WITH_NOSQL-mkPersist persistSettings { mpsGeneric = False } [persistUpperCase|-#else-share [mkPersist persistSettings { mpsGeneric = False }, mkMigrate "migration"] [persistLowerCase|-#endif- Fo- foo Int- bar Int- Primary foo- UniqueBar bar- deriving Eq Show-|]-#ifdef WITH_NOSQL-cleanDB :: (MonadIO m, PersistQuery backend, PersistEntityBackend Fo ~ backend) => ReaderT backend m ()-cleanDB = do- deleteWhere ([] :: [Filter Fo])--db :: Action IO () -> Assertion-db = db' cleanDB-#endif--specs :: Spec-specs = describe "custom primary key" $ do-#ifdef WITH_NOSQL- return ()-#else- it "getBy" $ db $ do- let b = 5- k <- insert $ Fo 3 b- Just vk <- get k- Just vu <- getBy (UniqueBar b)- vu @== Entity k vk- it "insertUniqueEntity" $ db $ do- let fo = Fo 3 5- Just (Entity _ insertedFoValue) <- insertUniqueEntity fo- Nothing <- insertUniqueEntity fo- fo @== insertedFoValue-#endif-