packages feed

ghc-lib-parser-ex 8.10.0.2 → 8.10.0.3

raw patch · 9 files changed

+93/−32 lines, 9 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Language.Haskell.GhclibParserEx.GHC.Hs.Pat: strToPat :: String -> Pat GhcPs
+ Language.Haskell.GhclibParserEx.GHC.Hs.Pat: strToPat :: String -> LPat GhcPs
- Language.Haskell.GhclibParserEx.Parse: parseExpression :: String -> DynFlags -> ParseResult ECP
+ Language.Haskell.GhclibParserEx.Parse: parseExpression :: String -> DynFlags -> ParseResult (LHsExpr GhcPs)

Files

ChangeLog.md view
@@ -1,5 +1,7 @@ # Changelog for ghc-lib-parser-ex +## 0.20200401 released 2020-04-01+ ## 8.10.0.2 released 2020-03-30 - Rework cabal flags; allow full configurability with a good default:   - Have two flags `auto` and `no-ghc-lib`. Default behavior exactly as `hlint` linking `ghc-lib-parser-8.10.*` if not on `ghc-8.10.*` and `ghc-8.10.*` otherwise.
ghc-lib-parser-ex.cabal view
@@ -1,6 +1,6 @@ cabal-version: >= 1.18 name:           ghc-lib-parser-ex-version:        8.10.0.2+version:        8.10.0.3 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
src/Language/Haskell/GhclibParserEx/Fixity.hs view
@@ -15,15 +15,31 @@   , infixr_, infixl_, infix_, fixity   ) where +#if defined (GHCLIB_API_811)+import GHC.Types.Basic+#else import BasicTypes+#endif #if defined (GHCLIB_API_811) || defined (GHCLIB_API_810) import GHC.Hs #else import HsSyn #endif+#if defined (GHCLIB_API_811)+import GHC.Types.Name.Reader+#else import RdrName+#endif+#if defined (GHCLIB_API_811)+import GHC.Types.Name+#else import OccName+#endif+#if defined (GHCLIB_API_811)+import GHC.Types.SrcLoc+#else import SrcLoc+#endif import Data.Maybe import Data.Data hiding (Fixity) import Data.Generics.Uniplate.Data
src/Language/Haskell/GhclibParserEx/GHC/Hs/Decls.hs view
@@ -12,7 +12,11 @@ #else import HsSyn #endif+#if defined (GHCLIB_API_811)+import GHC.Types.SrcLoc+#else import SrcLoc+#endif  isNewType :: NewOrData -> Bool isNewType NewType = True
src/Language/Haskell/GhclibParserEx/GHC/Hs/Expr.hs view
@@ -22,11 +22,27 @@ #else import HsSyn #endif+#if defined (GHCLIB_API_811)+import GHC.Types.SrcLoc+#else import SrcLoc+#endif+#if defined (GHCLIB_API_811)+import GHC.Types.Name.Reader+#else import RdrName+#endif+#if defined (GHCLIB_API_811)+import GHC.Types.Name+#else import OccName import Name+#endif+#if defined (GHCLIB_API_811)+import GHC.Types.Basic+#else import BasicTypes+#endif import TysWiredIn  -- 'True' if the provided expression is a variable with name 'tag'.
src/Language/Haskell/GhclibParserEx/GHC/Hs/Pat.hs view
@@ -16,10 +16,19 @@ #else import HsSyn #endif+#if defined (GHCLIB_API_811)+import GHC.Types.SrcLoc+#else import SrcLoc+#endif import TysWiredIn+#if defined (GHCLIB_API_811)+import GHC.Types.Name.Reader+import GHC.Types.Name+#else import RdrName import OccName+#endif import FastString  patToStr :: LPat GhcPs -> String@@ -35,14 +44,26 @@ patToStr _ = "" #endif -strToPat :: String -> Pat GhcPs+strToPat :: String -> LPat GhcPs strToPat z-  | z == "True"  = ConPatIn (noLoc true_RDR) (PrefixCon [])-  | z == "False" = ConPatIn (noLoc false_RDR) (PrefixCon [])-  | z == "[]"    = ConPatIn (noLoc $ nameRdrName nilDataConName) (PrefixCon [])+  | z == "True"  =+#if defined (GHCLIB_API_811) || defined (GHCLIB_API_810)+  noLoc $+#endif+    ConPatIn (noLoc true_RDR) (PrefixCon [])+  | z == "False" =+#if defined (GHCLIB_API_811) || defined (GHCLIB_API_810)+  noLoc $+#endif+    ConPatIn (noLoc false_RDR) (PrefixCon [])+  | z == "[]"    =+#if defined (GHCLIB_API_811) || defined (GHCLIB_API_810)+  noLoc $+#endif+    ConPatIn (noLoc $ nameRdrName nilDataConName) (PrefixCon [])   | otherwise = #if defined (GHCLIB_API_811) || defined (GHCLIB_API_810)-      VarPat noExtField (noLoc $ mkVarUnqual (fsLit z))+      noLoc $ VarPat noExtField (noLoc $ mkVarUnqual (fsLit z)) #else       VarPat noExt (noLoc $ mkVarUnqual (fsLit z)) #endif
src/Language/Haskell/GhclibParserEx/GHC/Hs/Types.hs view
@@ -13,7 +13,11 @@ #else import HsSyn #endif+#if defined (GHCLIB_API_811)+import GHC.Types.SrcLoc+#else import SrcLoc+#endif  fromTyParen :: LHsType GhcPs -> LHsType GhcPs fromTyParen (L _ (HsParTy _ x)) = x
src/Language/Haskell/GhclibParserEx/Parse.hs view
@@ -39,7 +39,11 @@ import Lexer import qualified Parser import FastString+#if defined (GHCLIB_API_811)+import GHC.Types.SrcLoc+#else import SrcLoc+#endif #if defined (GHCLIB_API_811) import GHC.Driver.Backpack.Syntax #else@@ -50,7 +54,11 @@ #else import PackageConfig #endif+#if defined (GHCLIB_API_811)+import GHC.Types.Name.Reader+#else import RdrName+#endif  parse :: P a -> String -> DynFlags -> ParseResult a parse p str flags =@@ -86,12 +94,16 @@ parseDeclaration :: String -> DynFlags -> ParseResult (LHsDecl GhcPs) parseDeclaration = parse Parser.parseDeclaration +parseExpression :: String -> DynFlags -> ParseResult (LHsExpr GhcPs)+parseExpression s flags = #if defined (GHCLIB_API_811) || defined (GHCLIB_API_810)-parseExpression :: String -> DynFlags -> ParseResult RdrHsSyn.ECP+  case parse Parser.parseExpression s flags of+    POk s e ->+       unP (runECP_P e >>= return) s :: ParseResult (LHsExpr GhcPs)+    PFailed ps -> PFailed ps #else-parseExpression :: String -> DynFlags -> ParseResult (LHsExpr GhcPs)+  parse Parser.parseExpression s flags #endif-parseExpression = parse Parser.parseExpression  parsePattern :: String -> DynFlags -> ParseResult (LPat GhcPs) parsePattern = parse Parser.parsePattern
test/Test.hs view
@@ -29,11 +29,14 @@  #if defined (GHCLIB_API_811) || defined (GHCLIB_API_810) import GHC.Hs-import RdrHsSyn #else import HsSyn #endif+#if defined (GHCLIB_API_811)+import GHC.Types.SrcLoc+#else import SrcLoc+#endif #if defined (GHCLIB_API_811) import GHC.Driver.Session #else@@ -141,30 +144,13 @@ exprTest :: String -> DynFlags -> (LHsExpr GhcPs -> IO ()) -> IO () exprTest s flags test =       case parseExpression s flags of-#if defined (GHCLIB_API_811) || defined (GHCLIB_API_810)-        POk s e ->-#else-        POk _ e ->-#endif-#if defined (GHCLIB_API_811) || defined (GHCLIB_API_810)-          case unP (runECP_P e >>= \e -> return e) s :: ParseResult (LHsExpr GhcPs) of-            POk _  e ->-#endif-              test e-#if defined (GHCLIB_API_811) || defined (GHCLIB_API_810)-            _ -> assertFailure "parse error"-#endif+        POk _ e -> test e         _ -> assertFailure "parse error"  patTest :: String -> DynFlags -> (LPat GhcPs -> IO ()) -> IO () patTest s flags test =       case parsePattern s flags of-#if defined (GHCLIB_API_811) || defined (GHCLIB_API_810)-        POk _ e ->-#else-        POk _ e ->-#endif-              test e+        POk _ e -> test e         _ -> assertFailure "parse error"  fixityTests :: TestTree@@ -281,9 +267,9 @@   [ testCase "patToStr" $ test "True" $ assert' . (== "True") . patToStr   , testCase "patToStr" $ test "False" $ assert' . (== "False") . patToStr   , testCase "patToStr" $ test "[]" $ assert' . (== "[]") . patToStr-  , testCase "strToPat" $ assert' . (== "True") . patToStr . noLoc . strToPat $ "True"-  , testCase "strToPat" $ assert' . (== "False") . patToStr . noLoc . strToPat $ "False"-  , testCase "strToPat" $ assert' . (== "[]") . patToStr . noLoc . strToPat $ "[]"+  , testCase "strToPat" $ assert' . (== "True") . patToStr . strToPat $ "True"+  , testCase "strToPat" $ assert' . (== "False") . patToStr . strToPat $ "False"+  , testCase "strToPat" $ assert' . (== "[]") . patToStr . strToPat $ "[]"   , testCase "fromPChar" $ test "'a'" $ assert' . (== Just 'a') . fromPChar   , testCase "fromPChar" $ test "\"a\"" $ assert' . isNothing . fromPChar   ]