[project @ 2002-11-20 12:34:42 by chak]
[ghc-hetmet.git] / ghc / compiler / main / HscMain.lhs
index ebf7fb5..49f4a2f 100644 (file)
@@ -28,6 +28,7 @@ import RdrHsSyn               ( RdrNameStmt )
 import Type            ( Type )
 import PrelNames       ( iNTERACTIVE )
 import StringBuffer    ( stringToStringBuffer )
+import Name            ( Name )
 #endif
 
 import HsSyn
@@ -40,10 +41,10 @@ import Parser
 import Lex             ( ParseResult(..), ExtFlags(..), mkPState )
 import SrcLoc          ( mkSrcLoc )
 import TcRnDriver      ( checkOldIface, tcRnModule, tcRnExtCore, tcRnIface )
+import RnEnv           ( extendOrigNameCache )
 import Rules           ( emptyRuleBase )
-import PrelInfo                ( wiredInThingEnv, wiredInThings )
+import PrelInfo                ( wiredInThingEnv, wiredInThings, knownKeyNames )
 import PrelRules       ( builtinRules )
-import PrelNames       ( knownKeyNames )
 import MkIface         ( mkIface )
 import InstEnv         ( emptyInstEnv )
 import Desugar
@@ -58,7 +59,7 @@ import SimplStg               ( stg2stg )
 import CodeGen         ( codeGen )
 import CodeOutput      ( codeOutput )
 
-import Module          ( ModuleName, moduleName )
+import Module          ( emptyModuleEnv )
 import CmdLineOpts
 import DriverPhases     ( isExtCore_file )
 import ErrUtils                ( dumpIfSet_dyn, showPass, printError )
@@ -71,9 +72,8 @@ import HscTypes
 import MkExternalCore  ( emitExternalCore )
 import ParserCore
 import ParserCoreUtils
-import FiniteMap       ( FiniteMap, plusFM, emptyFM, addToFM )
-import OccName         ( OccName )
-import Name            ( Name, nameModule, nameOccName, getName )
+import FiniteMap       ( emptyFM )
+import Name            ( nameModule, getName )
 import NameEnv         ( emptyNameEnv, mkNameEnv )
 import NameSet         ( emptyNameSet )
 import Module          ( Module, ModLocation(..), showModMsg )
@@ -693,7 +693,6 @@ initExternalPackageState
       eps_insts      = (emptyBag, 0),
       eps_inst_gates = emptyNameSet,
       eps_rules      = foldr add_rule (emptyBag, 0) builtinRules,
-      eps_imp_mods   = emptyFM,
 
       eps_PIT       = emptyPackageIfaceTable,
       eps_PTE       = wiredInThingEnv,
@@ -709,11 +708,11 @@ initExternalPackageState
           rdr_name   = nameRdrName name
           gate_fn vis_fn = vis_fn name -- Load the rule whenever name is visible
 
-initOrigNames :: FiniteMap (ModuleName,OccName) Name
+initOrigNames :: OrigNameCache
 initOrigNames 
-   = grab knownKeyNames `plusFM` grab (map getName wiredInThings)
-     where
-        grab names = foldl add emptyFM names
-        add env name 
-           = addToFM env (moduleName (nameModule name), nameOccName name) name
+   = insert knownKeyNames $
+     insert (map getName wiredInThings) $
+     emptyModuleEnv
+  where
+     insert names env = foldl extendOrigNameCache env names
 \end{code}