packages feed

ghc-lib-parser-ex 8.8.4.0 → 8.8.5.0

raw patch · 4 files changed

+122/−16 lines, 4 filesdep +ghc-bootPVP ok

version bump matches the API change (PVP)

Dependencies added: ghc-boot

API changes (from Hackage documentation)

+ Language.Haskell.GhclibParserEx.DynFlags: impliedGFlags :: [(GeneralFlag, TurnOnFlag, GeneralFlag)]
+ Language.Haskell.GhclibParserEx.DynFlags: impliedOffGFlags :: [(GeneralFlag, TurnOnFlag, GeneralFlag)]
+ Language.Haskell.GhclibParserEx.DynFlags: impliedXFlags :: [(Extension, TurnOnFlag, Extension)]
+ Language.Haskell.GhclibParserEx.DynFlags: turnOff :: TurnOnFlag
+ Language.Haskell.GhclibParserEx.DynFlags: turnOn :: TurnOnFlag
+ Language.Haskell.GhclibParserEx.DynFlags: type TurnOnFlag = Bool

Files

ChangeLog.md view
@@ -2,6 +2,9 @@  ## Unreleased changes +## 8.8.5.0 released 2020-02-07+- Expose `impliedGFlags` and friends from `DynFlags` (https://github.com/shayne-fletcher/ghc-lib-parser-ex/issues/19).+ ## 8.8.4.0 released 2020-02-01 - New modules:   - `Language.Haskell.GhclibparserEx.GHC.Hs.Expr`
ghc-lib-parser-ex.cabal view
@@ -1,6 +1,6 @@ cabal-version: >= 1.18 name:           ghc-lib-parser-ex-version:        8.8.4.0+version:        8.8.5.0 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@@ -48,7 +48,8 @@   if !flag(ghc-lib) && impl(ghc >= 8.8.0) && impl(ghc < 8.9.0)       build-depends:         ghc == 8.8.*,-        ghc-boot-th+        ghc-boot-th,+        ghc-boot   else       build-depends:         ghc-lib-parser
src/Language/Haskell/GhclibParserEx/Dump.hs view
@@ -1,19 +1,6 @@ -- Copyright (c) 2020, Shayne Fletcher. All rights reserved. -- SPDX-License-Identifier: BSD-3-Clause. {--Currently 'showAstData' is only available in ghc-lib. I intend to-move it to ghc-lib-parser. Then, we'll be able to get at it with-something like,--  #if defined (GHCLIB_API_811) || defined (GHCLIB_API_810)-    import GHC.Hs.Dump-  #else-   import HsDumpAst-   #endif--The implementation is reproduced here until that time.--}-{- (c) The University of Glasgow 2006 (c) The GRASP/AQUA Project, Glasgow University, 1992-1998 -}@@ -28,6 +15,21 @@   , BlankSrcSpan(..), ) where +#if !defined(MIN_VERSION_ghc_lib_parser)+-- Using native ghc.+#  if defined (GHCLIB_API_811) || defined (GHCLIB_API_810)+import GHC.Hs.Dump+#  else+import HsDumpAst+#  endif+#else+-- Using ghc-lib-parser. Recent versions will include+-- GHC.Hs.Dump (it got moved in from ghc-lib on 2020-02-05).+# if defined (GHCLIB_API_811) || defined (GHCLIB_API_810)+import GHC.Hs.Dump+#  else+-- For simplicity, just assume it's missing from 8.8 ghc-lib-parser+-- builds and reproduce the implementation. import Prelude as X hiding ((<>))  import Data.Data hiding (Fixity)@@ -233,3 +235,5 @@      -> (forall d1 d2. (Data d1, Data d2) => c (t d1 d2))      -> c a ext2 def ext = maybe def id (dataCast2 ext)+#  endif+#endif
src/Language/Haskell/GhclibParserEx/DynFlags.hs view
@@ -1,17 +1,115 @@ -- Copyright (c) 2020, Shayne Fletcher. All rights reserved. -- SPDX-License-Identifier: BSD-3-Clause. +{-# LANGUAGE CPP #-}+#include "ghclib_api.h"+ module Language.Haskell.GhclibParserEx.DynFlags(-    parsePragmasIntoDynFlags+    -- Copied from DynFlags (see+    -- https://gitlab.haskell.org/ghc/ghc/merge_requests/2654).+      TurnOnFlag, turnOn, turnOff, impliedGFlags, impliedOffGFlags, impliedXFlags+    --+    , parsePragmasIntoDynFlags   ) where  import DynFlags+import qualified GHC.LanguageExtensions as LangExt import Panic import HeaderInfo import StringBuffer import HscTypes import GHC.LanguageExtensions.Type import Data.List++-- Copied from 'ghc/compiler/main/DynFlags.hs'.++type TurnOnFlag = Bool   -- True  <=> we are turning the flag on+                         -- False <=> we are turning the flag off+turnOn  :: TurnOnFlag; turnOn  = True+turnOff :: TurnOnFlag; turnOff = False++-- General flags that are switched on/off when other general flags are switched+-- on+impliedGFlags :: [(GeneralFlag, TurnOnFlag, GeneralFlag)]+impliedGFlags = [(Opt_DeferTypeErrors, turnOn, Opt_DeferTypedHoles)+                ,(Opt_DeferTypeErrors, turnOn, Opt_DeferOutOfScopeVariables)+                ,(Opt_Strictness, turnOn, Opt_WorkerWrapper)+                ,(Opt_UnclutterValidHoleFits, turnOff, Opt_ShowTypeAppOfHoleFits)+                ,(Opt_UnclutterValidHoleFits, turnOff, Opt_ShowTypeAppVarsOfHoleFits)+                ,(Opt_UnclutterValidHoleFits, turnOff, Opt_ShowDocsOfHoleFits)+                ,(Opt_ShowTypeAppVarsOfHoleFits, turnOff, Opt_ShowTypeAppOfHoleFits)+                ,(Opt_UnclutterValidHoleFits, turnOff, Opt_ShowProvOfHoleFits)]++-- General flags that are switched on/off when other general flags are switched+-- off+impliedOffGFlags :: [(GeneralFlag, TurnOnFlag, GeneralFlag)]+impliedOffGFlags = [(Opt_Strictness, turnOff, Opt_WorkerWrapper)]++impliedXFlags :: [(LangExt.Extension, TurnOnFlag, LangExt.Extension)]+impliedXFlags+-- See Note [Updating flag description in the User's Guide]+  = [ (LangExt.RankNTypes,                turnOn, LangExt.ExplicitForAll)+    , (LangExt.QuantifiedConstraints,     turnOn, LangExt.ExplicitForAll)+    , (LangExt.ScopedTypeVariables,       turnOn, LangExt.ExplicitForAll)+    , (LangExt.LiberalTypeSynonyms,       turnOn, LangExt.ExplicitForAll)+    , (LangExt.ExistentialQuantification, turnOn, LangExt.ExplicitForAll)+    , (LangExt.FlexibleInstances,         turnOn, LangExt.TypeSynonymInstances)+    , (LangExt.FunctionalDependencies,    turnOn, LangExt.MultiParamTypeClasses)+    , (LangExt.MultiParamTypeClasses,     turnOn, LangExt.ConstrainedClassMethods)  -- c.f. #7854+    , (LangExt.TypeFamilyDependencies,    turnOn, LangExt.TypeFamilies)++    , (LangExt.RebindableSyntax, turnOff, LangExt.ImplicitPrelude)      -- NB: turn off!++    , (LangExt.DerivingVia, turnOn, LangExt.DerivingStrategies)++    , (LangExt.GADTs,            turnOn, LangExt.GADTSyntax)+    , (LangExt.GADTs,            turnOn, LangExt.MonoLocalBinds)+    , (LangExt.TypeFamilies,     turnOn, LangExt.MonoLocalBinds)++    , (LangExt.TypeFamilies,     turnOn, LangExt.KindSignatures)  -- Type families use kind signatures+    , (LangExt.PolyKinds,        turnOn, LangExt.KindSignatures)  -- Ditto polymorphic kinds++    -- TypeInType is now just a synonym for a couple of other extensions.+    , (LangExt.TypeInType,       turnOn, LangExt.DataKinds)+    , (LangExt.TypeInType,       turnOn, LangExt.PolyKinds)+    , (LangExt.TypeInType,       turnOn, LangExt.KindSignatures)++#if defined(GHCLIB_API_811) || defined(GHCLIB_API_810)+    -- Standalone kind signatures are a replacement for CUSKs.+    , (LangExt.StandaloneKindSignatures, turnOff, LangExt.CUSKs)+#endif++    -- AutoDeriveTypeable is not very useful without DeriveDataTypeable+    , (LangExt.AutoDeriveTypeable, turnOn, LangExt.DeriveDataTypeable)++    -- We turn this on so that we can export associated type+    -- type synonyms in subordinates (e.g. MyClass(type AssocType))+    , (LangExt.TypeFamilies,     turnOn, LangExt.ExplicitNamespaces)+    , (LangExt.TypeOperators, turnOn, LangExt.ExplicitNamespaces)++    , (LangExt.ImpredicativeTypes,  turnOn, LangExt.RankNTypes)++        -- Record wild-cards implies field disambiguation+        -- Otherwise if you write (C {..}) you may well get+        -- stuff like " 'a' not in scope ", which is a bit silly+        -- if the compiler has just filled in field 'a' of constructor 'C'+    , (LangExt.RecordWildCards,     turnOn, LangExt.DisambiguateRecordFields)++    , (LangExt.ParallelArrays, turnOn, LangExt.ParallelListComp)++    , (LangExt.JavaScriptFFI, turnOn, LangExt.InterruptibleFFI)++    , (LangExt.DeriveTraversable, turnOn, LangExt.DeriveFunctor)+    , (LangExt.DeriveTraversable, turnOn, LangExt.DeriveFoldable)++    -- Duplicate record fields require field disambiguation+    , (LangExt.DuplicateRecordFields, turnOn, LangExt.DisambiguateRecordFields)++    , (LangExt.TemplateHaskell, turnOn, LangExt.TemplateHaskellQuotes)+    , (LangExt.Strict, turnOn, LangExt.StrictData)+  ]++--  parsePragmasIntoDynFlags :: DynFlags                          -> ([Extension], [Extension])