import Var ( Id )
import Module ( emptyModuleEnv, ModLocation(..) )
-import RdrName ( GlobalRdrEnv, RdrName )
+import RdrName ( GlobalRdrEnv, RdrName, emptyGlobalRdrEnv )
import HsSyn ( HsModule, LHsBinds, HsGroup, LIE, LImportDecl )
import SrcLoc ( Located(..) )
import StringBuffer ( hGetStringBuffer, stringToStringBuffer )
import CodeGen ( codeGen )
import CmmParse ( parseCmmFile )
import CodeOutput ( codeOutput )
+import NameEnv ( emptyNameEnv )
import DynFlags
import ErrUtils
hsc_HPT = emptyHomePackageTable,
hsc_EPS = eps_var,
hsc_NC = nc_var,
- hsc_FC = fc_var } ) }
+ hsc_FC = fc_var,
+ hsc_global_rdr_env = emptyGlobalRdrEnv,
+ hsc_global_type_env = emptyNameEnv } ) }
knownKeyNames :: [Name] -- Put here to avoid loops involving DsMeta,
get :: Comp CompState
get = Comp $ \s -> return (s,s)
+modify :: (CompState -> CompState) -> Comp ()
+modify f = Comp $ \s -> return ((), f s)
+
gets :: (CompState -> a) -> Comp a
gets getter = do st <- get
return (getter st)
<- {-# SCC "checkOldIface" #-}
liftIO $ checkOldIface hsc_env mod_summary
source_unchanged mbOldIface
+ -- save the interface that comes back from checkOldIface.
+ -- In one-shot mode we don't have the old iface until this
+ -- point, when checkOldIface reads it from the disk.
+ modify (\s -> s{ compOldIface = mbCheckedIface })
case mbCheckedIface of
Just iface | not recomp_reqd
-> do messenger mbModIndex False