X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fmain%2FPackageConfig.hs;h=50c1e7105aeea53f25f0044271e49a375fc13b57;hp=239a917560bdc4f17406545a09ceffca6192a819;hb=914e415702a25a6e52ab1eaaf2aea233d6c6097e;hpb=c735a21acf3e478df36f630cf224dcb3755db485 diff --git a/compiler/main/PackageConfig.hs b/compiler/main/PackageConfig.hs index 239a917..50c1e71 100644 --- a/compiler/main/PackageConfig.hs +++ b/compiler/main/PackageConfig.hs @@ -7,7 +7,7 @@ module PackageConfig ( -- $package_naming -- * PackageId - mkPackageId, packageConfigId, unpackPackageId, + mkPackageId, packageConfigId, -- * The PackageConfig type: information about a package PackageConfig, @@ -15,20 +15,19 @@ module PackageConfig ( Version(..), PackageIdentifier(..), defaultPackageConfig, - packageConfigToInstalledPackageInfo, - installedPackageInfoToPackageConfig, + packageConfigToInstalledPackageInfo, + installedPackageInfoToPackageConfig, ) where #include "HsVersions.h" -import Data.Maybe +import Maybes import Module import Distribution.InstalledPackageInfo import Distribution.ModuleName import Distribution.Package hiding (PackageId) import Distribution.Text import Distribution.Version -import Distribution.Compat.ReadP -- ----------------------------------------------------------------------------- -- Our PackageConfig type is just InstalledPackageInfo from Cabal. Later we @@ -60,18 +59,9 @@ mkPackageId = stringToPackageId . display -- | Get the GHC 'PackageId' right out of a Cabalish 'PackageConfig' packageConfigId :: PackageConfig -> PackageId -packageConfigId = mkPackageId . package +packageConfigId = mkPackageId . sourcePackageId --- | Try and interpret a GHC 'PackageId' as a cabal 'PackageIdentifer'. Returns @Nothing@ if --- we could not parse it as such an object. -unpackPackageId :: PackageId -> Maybe PackageIdentifier -unpackPackageId p - = case [ pid | (pid,"") <- readP_to_S parse str ] of - [] -> Nothing - (pid:_) -> Just pid - where str = packageIdString p - --- | Turn a 'PackageConfig', which contains GHC 'ModuleName's into a Cabal specific +-- | Turn a 'PackageConfig', which contains GHC 'Module.ModuleName's into a Cabal specific -- 'InstalledPackageInfo' which contains Cabal 'Distribution.ModuleName.ModuleName's packageConfigToInstalledPackageInfo :: PackageConfig -> InstalledPackageInfo packageConfigToInstalledPackageInfo @@ -80,15 +70,13 @@ packageConfigToInstalledPackageInfo pkgconf{ exposedModules = map convert e, hiddenModules = map convert h } where convert :: Module.ModuleName -> Distribution.ModuleName.ModuleName - convert = fromJust . simpleParse . moduleNameString + convert = (expectJust "packageConfigToInstalledPackageInfo") . simpleParse . moduleNameString -- | Turn an 'InstalledPackageInfo', which contains Cabal 'Distribution.ModuleName.ModuleName's --- into a GHC specific 'PackageConfig' which contains GHC 'ModuleName's -installedPackageInfoToPackageConfig :: InstalledPackageInfo -> PackageConfig +-- into a GHC specific 'PackageConfig' which contains GHC 'Module.ModuleName's +installedPackageInfoToPackageConfig :: InstalledPackageInfo_ String -> PackageConfig installedPackageInfoToPackageConfig (pkgconf@(InstalledPackageInfo { exposedModules = e, hiddenModules = h })) = - pkgconf{ exposedModules = map convert e, - hiddenModules = map convert h } - where convert :: Distribution.ModuleName.ModuleName -> Module.ModuleName - convert = mkModuleName . display + pkgconf{ exposedModules = map mkModuleName e, + hiddenModules = map mkModuleName h }