packages feed

ghc-check 0.5.0.5 → 0.5.0.6

raw patch · 2 files changed

+44/−3 lines, 2 filesdep +ghc-bootdep ~basePVP ok

version bump matches the API change (PVP)

Dependencies added: ghc-boot

Dependency ranges changed: base

API changes (from Hackage documentation)

Files

ghc-check.cabal view
@@ -1,7 +1,7 @@ cabal-version:       1.20 build-type:          Simple name:                ghc-check-version:             0.5.0.5+version:             0.5.0.6 synopsis:            detect mismatches between compile-time and run-time versions of the ghc api description:         detect mismatches between compile-time and run-time versions of the ghc api bug-reports:         https://github.com/pepeiborra/ghc-check/issues@@ -34,6 +34,9 @@                        template-haskell,                        th-compat >= 0.1.2,                        transformers+  if impl(ghc >= 9.2)+      -- We need access to ShortText+      build-depends: ghc-boot   hs-source-dirs:      src   ghc-options:         -Wall   default-language:    Haskell2010
src/GHC/Check/PackageDb.hs view
@@ -20,8 +20,23 @@ import Language.Haskell.TH.Syntax (Lift) import Data.Foldable (find) import Control.Applicative (Alternative((<|>)))-#if MIN_VERSION_ghc(9,0,1)+#if MIN_VERSION_ghc(9,2,0) import GHC+  (Ghc,+    getSession,+  )+import GHC.Data.Maybe (MaybeT (MaybeT), runMaybeT)+import qualified GHC.Data.ShortText as ShortText+import GHC.Driver.Env (hsc_unit_env, )+import GHC.Unit.Info (PackageName (PackageName))+import GHC.Unit.Env (ue_units)+import GHC.Unit.State+  (lookupUnit, explicitUnits,  lookupUnitId,+    lookupPackageName, GenericUnitInfo (..),+    UnitInfo, unitPackageNameString)+import GHC.Unit.Types (indefUnit)+#elif MIN_VERSION_ghc(9,0,1)+import GHC   (unitState,  Ghc,     getSessionDynFlags,   )@@ -62,7 +77,30 @@ version :: PackageVersion -> Version version PackageVersion{ myVersion = MyVersion v} = v -#if MIN_VERSION_ghc(9,0,1)+#if MIN_VERSION_ghc(9,2,0)+-- | @getPackageVersion p@ returns the version of package @p@ that will be used in the Ghc session.+getPackageVersion :: String -> Ghc (Maybe PackageVersion)+getPackageVersion pName = runMaybeT $ do+  hsc_env <- Monad.lift getSession+  let pkgst   = ue_units $ hsc_unit_env hsc_env+      depends = explicitUnits pkgst++  let explicit = do+        pkgs <- traverse (MaybeT . return . lookupUnit pkgst) depends+        MaybeT $ return $ find (\p -> unitPackageNameString p == pName ) pkgs++      notExplicit = do+        component <- MaybeT $ return $ lookupPackageName pkgst $ PackageName $ fromString pName+        MaybeT $ return $ lookupUnitId pkgst (indefUnit component)++  p <- explicit <|> notExplicit++  return $ fromPackageConfig p++fromPackageConfig :: UnitInfo -> PackageVersion+fromPackageConfig p = PackageVersion (MyVersion $ unitPackageVersion p) (Just $ ShortText.unpack $ unitAbiHash p)++#elif MIN_VERSION_ghc(9,0,1) -- | @getPackageVersion p@ returns the version of package @p@ that will be used in the Ghc session. getPackageVersion :: String -> Ghc (Maybe PackageVersion) getPackageVersion pName = runMaybeT $ do