X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FbasicTypes%2FModule.lhs;h=0221a1b87fc32afe66040219cc2dfaba9fd23763;hb=3e35714a039779be26df0bbdeba4e2a282ec799a;hp=f6b8b8342a7021e93e2cc09e3682567011b9825f;hpb=1a7d1b77334529ca96ed4cbc03fcb5f55dc2de4a;p=ghc-hetmet.git diff --git a/compiler/basicTypes/Module.lhs b/compiler/basicTypes/Module.lhs index f6b8b83..0221a1b 100644 --- a/compiler/basicTypes/Module.lhs +++ b/compiler/basicTypes/Module.lhs @@ -16,6 +16,7 @@ module Module pprModuleName, moduleNameFS, moduleNameString, + moduleNameSlashes, mkModuleName, mkModuleNameFS, @@ -50,8 +51,8 @@ module Module extendModuleEnvList_C, plusModuleEnv_C, delModuleEnvList, delModuleEnv, plusModuleEnv, lookupModuleEnv, lookupWithDefaultModuleEnv, mapModuleEnv, mkModuleEnv, emptyModuleEnv, - moduleEnvElts, unitModuleEnv, isEmptyModuleEnv, foldModuleEnv, - extendModuleEnv_C, filterModuleEnv, + moduleEnvKeys, moduleEnvElts, unitModuleEnv, isEmptyModuleEnv, + foldModuleEnv, extendModuleEnv_C, filterModuleEnv, -- * ModuleName mappings ModuleNameEnv, @@ -69,6 +70,8 @@ import FiniteMap import UniqFM import FastString import Binary + +import System.FilePath \end{code} %************************************************************************ @@ -173,6 +176,11 @@ mkModuleName s = ModuleName (mkFastString s) mkModuleNameFS :: FastString -> ModuleName mkModuleNameFS s = ModuleName s + +-- Returns the string version of the module name, with dots replaced by slashes +moduleNameSlashes :: ModuleName -> String +moduleNameSlashes = dots_to_slashes . moduleNameString + where dots_to_slashes = map (\c -> if c == '.' then pathSeparator else c) \end{code} %************************************************************************ @@ -305,6 +313,7 @@ delModuleEnvList :: ModuleEnv a -> [Module] -> ModuleEnv a delModuleEnv :: ModuleEnv a -> Module -> ModuleEnv a plusModuleEnv_C :: (a -> a -> a) -> ModuleEnv a -> ModuleEnv a -> ModuleEnv a mapModuleEnv :: (a -> b) -> ModuleEnv a -> ModuleEnv b +moduleEnvKeys :: ModuleEnv a -> [Module] moduleEnvElts :: ModuleEnv a -> [a] isEmptyModuleEnv :: ModuleEnv a -> Bool @@ -329,6 +338,7 @@ lookupWithDefaultModuleEnv = lookupWithDefaultFM mapModuleEnv f = mapFM (\_ v -> f v) mkModuleEnv = listToFM emptyModuleEnv = emptyFM +moduleEnvKeys = keysFM moduleEnvElts = eltsFM unitModuleEnv = unitFM isEmptyModuleEnv = isEmptyFM