ghc-lib-parser-ex 0.20210201 → 0.20210228
raw patch · 8 files changed
+51/−12 lines, 8 filesdep ~ghcdep ~ghc-lib-parserPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: ghc, ghc-lib-parser
API changes (from Hackage documentation)
- Language.Haskell.GhclibParserEx.GHC.Driver.Flags: instance GHC.Enum.Bounded DynFlags.Language
- Language.Haskell.GhclibParserEx.GHC.Driver.Session: impliedGFlags :: [(GeneralFlag, TurnOnFlag, GeneralFlag)]
- Language.Haskell.GhclibParserEx.GHC.Driver.Session: impliedOffGFlags :: [(GeneralFlag, TurnOnFlag, GeneralFlag)]
- Language.Haskell.GhclibParserEx.GHC.Driver.Session: impliedXFlags :: [(Extension, TurnOnFlag, Extension)]
- Language.Haskell.GhclibParserEx.GHC.Driver.Session: instance GHC.Classes.Ord GHC.LanguageExtensions.Type.Extension
- Language.Haskell.GhclibParserEx.GHC.Driver.Session: turnOff :: TurnOnFlag
- Language.Haskell.GhclibParserEx.GHC.Driver.Session: turnOn :: TurnOnFlag
- Language.Haskell.GhclibParserEx.GHC.Driver.Session: type TurnOnFlag = Bool
- Language.Haskell.GhclibParserEx.GHC.Hs.ExtendInstances: instance Outputable.Outputable a => GHC.Show.Show (Language.Haskell.GhclibParserEx.GHC.Hs.ExtendInstances.HsExtendInstances a)
- Language.Haskell.GhclibParserEx.GHC.Hs.ExtendInstances: instance Outputable.Outputable a => Outputable.Outputable (Language.Haskell.GhclibParserEx.GHC.Hs.ExtendInstances.HsExtendInstances a)
+ Language.Haskell.GhclibParserEx.GHC.Hs.ExtendInstances: instance GHC.Utils.Outputable.Outputable a => GHC.Show.Show (Language.Haskell.GhclibParserEx.GHC.Hs.ExtendInstances.HsExtendInstances a)
+ Language.Haskell.GhclibParserEx.GHC.Hs.ExtendInstances: instance GHC.Utils.Outputable.Outputable a => GHC.Utils.Outputable.Outputable (Language.Haskell.GhclibParserEx.GHC.Hs.ExtendInstances.HsExtendInstances a)
- Language.Haskell.GhclibParserEx.Fixity: fixitiesFromModule :: Located (HsModule GhcPs) -> [(String, Fixity)]
+ Language.Haskell.GhclibParserEx.Fixity: fixitiesFromModule :: Located HsModule -> [(String, Fixity)]
- Language.Haskell.GhclibParserEx.GHC.Hs: modName :: Located (HsModule GhcPs) -> String
+ Language.Haskell.GhclibParserEx.GHC.Hs: modName :: Located HsModule -> String
- Language.Haskell.GhclibParserEx.GHC.Hs.Expr: isMDo :: HsStmtContext Name -> Bool
+ Language.Haskell.GhclibParserEx.GHC.Hs.Expr: isMDo :: HsStmtContext GhcRn -> Bool
- Language.Haskell.GhclibParserEx.GHC.Parser: parseFile :: String -> DynFlags -> String -> ParseResult (Located (HsModule GhcPs))
+ Language.Haskell.GhclibParserEx.GHC.Parser: parseFile :: String -> DynFlags -> String -> ParseResult (Located HsModule)
- Language.Haskell.GhclibParserEx.GHC.Parser: parseHeader :: String -> DynFlags -> ParseResult (Located (HsModule GhcPs))
+ Language.Haskell.GhclibParserEx.GHC.Parser: parseHeader :: String -> DynFlags -> ParseResult (Located HsModule)
- Language.Haskell.GhclibParserEx.GHC.Parser: parseModule :: String -> DynFlags -> ParseResult (Located (HsModule GhcPs))
+ Language.Haskell.GhclibParserEx.GHC.Parser: parseModule :: String -> DynFlags -> ParseResult (Located HsModule)
- Language.Haskell.GhclibParserEx.GHC.Parser: parseSignature :: String -> DynFlags -> ParseResult (Located (HsModule GhcPs))
+ Language.Haskell.GhclibParserEx.GHC.Parser: parseSignature :: String -> DynFlags -> ParseResult (Located HsModule)
Files
- ChangeLog.md +21/−0
- README.md +1/−1
- cbits/ghclib_api.h +1/−1
- ghc-lib-parser-ex.cabal +7/−7
- src/Language/Haskell/GhclibParserEx/Dump.hs +1/−1
- src/Language/Haskell/GhclibParserEx/GHC/Hs/Expr.hs +5/−0
- src/Language/Haskell/GhclibParserEx/GHC/Parser.hs +7/−1
- test/Test.hs +8/−1
ChangeLog.md view
@@ -1,5 +1,26 @@ # Changelog for ghc-lib-parser-ex +## 0.20210228 released 2021-02-28+- Update to `ghc-lib-0.20210228`++## 9.0.0.3 released 2021-02-08+- Cabal bugfix++## 9.0.0.2 released 2021-02-08+- Cabal bugfix++## 8.10.0.19 released 2021-02-08+- Cabal bugfix++## 8.10.0.18 released 2021-02-06+- Update to ghc-8.10.4.++## 9.0.0.1 released 2021-02-05+- Upgrade Cabal defaults flag to 9.0.1++## 9.0.0.0 released 2021-02-05+- Update to ghc-9.0.1+ ## 0.20210201 released 2021-02-01 - Update to `ghc-lib-0.20210201`
README.md view
@@ -1,5 +1,5 @@ # ghc-lib-parser-ex [](http://opensource.org/licenses/BSD-3-Clause) [](https://hackage.haskell.org/package/ghc-lib-parser-ex) [](https://www.stackage.org/package/ghc-lib-parser-ex) [](https://shayne-fletcher.visualstudio.com/ghc-lib-parser-ex/_build/latest?definitionId=1&branchName=master)-Copyright © 2020, Shayne Fletcher. All rights reserved.+Copyright © 2020-2021 Shayne Fletcher. All rights reserved. SPDX-License-Identifier: BSD-3-Clause The `ghc-lib-parser-ex` package contains GHC API parse tree utilities. It works with or without [`ghc-lib-parser`](https://github.com/digital-asset/ghc-lib).
cbits/ghclib_api.h view
@@ -20,7 +20,7 @@ # error Unsupported GHC API version # endif # else-# if __GLASGOW_HASKELL__ == 811+# if __GLASGOW_HASKELL__ == 901 # define GHCLIB_API_HEAD # elif __GLASGOW_HASKELL__ == 900 # define GHCLIB_API_900
ghc-lib-parser-ex.cabal view
@@ -1,6 +1,6 @@ cabal-version: >= 1.18 name: ghc-lib-parser-ex-version: 0.20210201+version: 0.20210228 description: Please see the README on GitHub at <https://github.com/shayne-fletcher/ghc-lib-parser-ex#readme> homepage: https://github.com/shayne-fletcher/ghc-lib-parser-ex#readme bug-reports: https://github.com/shayne-fletcher/ghc-lib-parser-ex/issues@@ -63,15 +63,15 @@ uniplate >= 1.5, bytestring >= 0.10.8.2, containers >= 0.5.8.1- if flag(auto) && impl(ghc >= 8.10.0) && impl(ghc < 8.11.0)+ if flag(auto) && impl(ghc >= 9.0.0) && impl(ghc < 9.1.0) build-depends:- ghc == 8.10.*,+ ghc == 9.0.*, ghc-boot-th, ghc-boot else if flag(auto) build-depends:- ghc-lib-parser == 8.10.*+ ghc-lib-parser == 9.0.* else if flag(no-ghc-lib) build-depends:@@ -107,15 +107,15 @@ , extra >=1.6 , uniplate >= 1.6.12 , ghc-lib-parser-ex- if flag(auto) && impl(ghc >= 8.10.0) && impl(ghc < 8.11.0)+ if flag(auto) && impl(ghc >= 9.0.0) && impl(ghc < 9.1.0) build-depends:- ghc == 8.10.*,+ ghc == 9.0.*, ghc-boot-th, ghc-boot else if flag(auto) build-depends:- ghc-lib-parser == 8.10.*+ ghc-lib-parser == 9.0.* else if flag(no-ghc-lib) build-depends:
src/Language/Haskell/GhclibParserEx/Dump.hs view
@@ -17,7 +17,7 @@ #if !defined(MIN_VERSION_ghc_lib_parser) -- Using native ghc.-# if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_810)+# if defined (GHCLIB_API_HEAD) || defined(GHCLIB_API_900) || defined (GHCLIB_API_810) import GHC.Hs.Dump # else import HsDumpAst
src/Language/Haskell/GhclibParserEx/GHC/Hs/Expr.hs view
@@ -159,8 +159,13 @@ isUnboxed = \case Unboxed -> True; _ -> False isWholeFrac :: HsExpr GhcPs -> Bool+#if defined (GHCLIB_API_HEAD)+isWholeFrac (HsLit _ (HsRat _ fl@FL{} _)) = denominator (rationalFromFractionalLit fl) == 1+isWholeFrac (HsOverLit _ (OverLit _ (HsFractional fl@FL {}) _)) = denominator (rationalFromFractionalLit fl) == 1+#else isWholeFrac (HsLit _ (HsRat _ (FL _ _ v) _)) = denominator v == 1 isWholeFrac (HsOverLit _ (OverLit _ (HsFractional (FL _ _ v)) _)) = denominator v == 1+#endif isWholeFrac _ = False varToStr :: LHsExpr GhcPs -> String
src/Language/Haskell/GhclibParserEx/GHC/Parser.hs view
@@ -98,8 +98,14 @@ parseExpression :: String -> DynFlags -> ParseResult (LHsExpr GhcPs) #if defined (GHCLIB_API_HEAD) parseExpression s flags =+ -- The need for annotations here came about first manifested with+ -- ghc-9.0.1 case parse Parser.parseExpression s flags of- POk s e -> unP (runPV . unECP $ e) s+ POk state e ->+ let e' = e :: ECP+ parser_validator = unECP e' :: PV (LHsExpr GhcPs)+ parser = runPV parser_validator :: P (LHsExpr GhcPs)+ in unP parser state :: ParseResult (LHsExpr GhcPs) PFailed ps -> PFailed ps #elif defined (GHCLIB_API_810) || defined (GHCLIB_API_900) parseExpression s flags =
test/Test.hs view
@@ -177,7 +177,11 @@ ] where flags = defaultDynFlags fakeSettings fakeLlvmConfig+#if defined (GHCLIB_API_HEAD)+ report flags msgs = concat [ showSDoc flags msg | msg <- pprMsgEnvelopeBagWithLoc msgs ]+#else report flags msgs = concat [ showSDoc flags msg | msg <- pprErrMsgBagWithLoc msgs ]+#endif #if defined (GHCLIB_API_HEAD) || defined (GHCLIB_API_900) moduleTest :: String -> DynFlags -> (Located HsModule -> IO ()) -> IO ()@@ -382,8 +386,11 @@ ] where flags = defaultDynFlags fakeSettings fakeLlvmConfig+#if defined(GHCLIB_API_HEAD)+ report flags msgs = concat [ showSDoc flags msg | msg <- pprMsgEnvelopeBagWithLoc msgs ]+#else report flags msgs = concat [ showSDoc flags msg | msg <- pprErrMsgBagWithLoc msgs ]-+#endif nameTests :: TestTree nameTests = testGroup "Name tests" [ testCase "modName (1)" $