ghc-typelits-presburger 0.5.2.0 → 0.6.0.0
raw patch · 3 files changed
+46/−13 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ GHC.TypeLits.Presburger.Compat: noExtField :: NoExtField
+ GHC.TypeLits.Presburger.Compat: pattern IsBoot :: IsBootInterface
+ GHC.TypeLits.Presburger.Compat: pattern NotBoot :: IsBootInterface
+ GHC.TypeLits.Presburger.Compat: type HsModule' = HsModule GhcPs
+ GHC.TypeLits.Presburger.Compat: type IsBootInterface = Bool
Files
- ghc-typelits-presburger.cabal +3/−3
- src/GHC/TypeLits/Presburger/Compat.hs +42/−2
- src/GHC/TypeLits/Presburger/Types.hs +1/−8
ghc-typelits-presburger.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: f4ea69ea55a2f6e349e91e0e359ba111afa36236c8c094e799d1e95ac82ce411+-- hash: f5d043e0588502295fbbf222a24c404b5415e14c21786d9e5e7bacc06e2088af name: ghc-typelits-presburger-version: 0.5.2.0+version: 0.6.0.0 synopsis: Presburger Arithmetic Solver for GHC Type-level natural numbers. description: @ghc-typelits-presburger@ augments GHC type-system with Presburger Arithmetic Solver for Type-level natural numbers.@@ -29,7 +29,7 @@ copyright: 2015 (c) Hiromi ISHII license: BSD3 license-file: LICENSE-tested-with: GHC==8.4.3 GHC==8.6.3 GHC==8.8.3 GHC==8.10.3 GHC==9.0.1+tested-with: GHC==8.6.5 GHC==8.8.4 GHC==8.10.4 GHC==9.0.1 build-type: Simple source-repository head
src/GHC/TypeLits/Presburger/Compat.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE CPP, FlexibleInstances, PatternGuards, PatternSynonyms #-} {-# LANGUAGE TypeSynonymInstances, ViewPatterns #-}+{-# LANGUAGE PatternSynonyms #-} {-# OPTIONS_GHC -Wno-orphans #-} module GHC.TypeLits.Presburger.Compat (module GHC.TypeLits.Presburger.Compat) where import Data.Function (on)@@ -10,6 +11,9 @@ #if MIN_VERSION_ghc(9,0,0) import GHC.Builtin.Names as GHC.TypeLits.Presburger.Compat (gHC_TYPENATS, dATA_TYPE_EQUALITY) import qualified GHC.Builtin.Names as Old+import GHC.Hs as GHC.TypeLits.Presburger.Compat (HsModule(..), NoExtField(..))+import GHC.Hs.ImpExp as GHC.TypeLits.Presburger.Compat (ImportDecl(..), ImportDeclQualifiedStyle(..))+import GHC.Hs.Extension as GHC.TypeLits.Presburger.Compat (GhcPs) import GHC.Builtin.Types as GHC.TypeLits.Presburger.Compat ( boolTyCon, eqTyConName,@@ -34,7 +38,9 @@ import GHC.Driver.Session (unitState) import GHC.Plugins (InScopeSet, Outputable, emptyUFM, moduleUnit, Unit) import GHC.Plugins as GHC.TypeLits.Presburger.Compat- ( PackageName (..),+ ( PackageName (..),isStrLitTy, isNumLitTy,+ nilDataCon, consDataCon,+ Hsc, HsParsedModule(..), Plugin (..), TCvSubst (..), TvSubstEnv,@@ -59,8 +65,12 @@ unionTCvSubst, ) import GHC.Tc.Plugin (lookupOrig)+import GHC.Core.InstEnv as GHC.TypeLits.Presburger.Compat (classInstances)+import GHC.Driver.Types as GHC.TypeLits.Presburger.Compat (IsBootInterface(..)) import GHC.Tc.Plugin as GHC.TypeLits.Presburger.Compat ( TcPluginM,+ getInstEnvs,+ newFlexiTyVar, getTopEnv, lookupOrig, newFlexiTyVar,@@ -159,12 +169,13 @@ #if MIN_VERSION_ghc(8,10,1) import Predicate as GHC.TypeLits.Presburger.Compat (EqRel (..), Pred(..)) import Predicate as GHC.TypeLits.Presburger.Compat (isEqPred)-+import GHC (NoExtField(..)) import qualified Predicate as Old (classifyPredType) import Predicate as GHC.TypeLits.Presburger.Compat (mkPrimEqPredRole) import Constraint as GHC.TypeLits.Presburger.Compat (Ct, ctEvidence, ctEvPred, isWanted) #else+import GHC (NoExt(..)) import GhcPlugins as GHC.TypeLits.Presburger.Compat (EqRel (..), PredTree (..)) import GhcPlugins as GHC.TypeLits.Presburger.Compat (isEqPred) import qualified GhcPlugins as Old (classifyPredType)@@ -359,3 +370,32 @@ moduleUnit' :: Module -> ModuleUnit moduleUnit' = GHC.moduleUnitId #endif++#if !MIN_VERSION_ghc(8,10,1)+type NoExtField = NoExt+#endif++noExtField :: NoExtField+#if MIN_VERSION_ghc(8,10,1)+noExtField = NoExtField+#else+noExtField = NoExt+#endif++#if MIN_VERSION_ghc(9,0,1)+type HsModule' = HsModule+#else+type HsModule' = GHC.HsModule GHC.GhcPs+#endif++#if !MIN_VERSION_ghc(9,0,1)+type IsBootInterface = Bool+pattern NotBoot :: IsBootInterface+pattern NotBoot = False++pattern IsBoot :: IsBootInterface+pattern IsBoot = True++{-# COMPLETE NotBoot, IsBoot #-}+#endif+
src/GHC/TypeLits/Presburger/Types.hs view
@@ -267,16 +267,9 @@ let givens = catMaybes ngs prems0 = map snd givens prems = foldr assert' noProps prems0- (solved, _) = foldr go ([], noProps) givens if isNothing (checkSat prems) then return $ TcPluginContradiction gs- else do- tcPluginTrace "Redundant solveds" $ ppr solved- return $ TcPluginOk (map withEv solved) []- where- go (ct, p) (ss, prem)- | Proved <- testIf prem p = (ct : ss, prem)- | otherwise = (ss, assert' p prem)+ else return $ TcPluginOk [] [] decidePresburger mode genTrans _ gs _ds ws = do trans <- genTrans give trans $ do