import NewDemand ( isBottomingSig, topSig )
import BasicTypes ( Arity, isNeverActive, isNonRuleLoopBreaker )
import Name ( Name, getOccName, nameOccName, mkInternalName,
- localiseName, isExternalName, nameSrcLoc, nameParent_maybe,
+ localiseName, isExternalName, nameSrcLoc,
isWiredInName, getName
)
import NameSet ( NameSet, elemNameSet )
isEnumerationTyCon, isOpenTyCon )
import Class ( classSelIds )
import Module ( Module )
-import HscTypes ( HscEnv(..), NameCache( nsUniqs ), CgGuts(..),
- TypeEnv, typeEnvIds, typeEnvElts, typeEnvTyCons,
- extendTypeEnvWithIds, lookupTypeEnv,
- ModGuts(..), TyThing(..), ModDetails(..),
- Dependencies(..)
- )
+import HscTypes
import Maybes ( orElse, mapCatMaybes )
import ErrUtils ( showPass, dumpIfSet_core )
import PackageConfig ( PackageId )
import UniqSupply ( splitUniqSupply, uniqFromSupply )
-import List ( partition )
-import Maybe ( isJust )
import Outputable
-import DATA_IOREF ( IORef, readIORef, writeIORef )
import FastTypes hiding ( fastOr )
+
+import Data.List ( partition )
+import Data.Maybe ( isJust )
+import Data.IORef ( IORef, readIORef, writeIORef )
\end{code}
; (tidy_env, tidy_binds) <- tidyTopBinds hsc_env mod type_env ext_ids
binds
- ; let { tidy_type_env = tidyTypeEnv omit_prags exports type_env
+ ; let { export_set = availsToNameSet exports
+ ; tidy_type_env = tidyTypeEnv omit_prags export_set type_env
tidy_binds
; tidy_insts = tidyInstances (lookup_dfun tidy_type_env) insts
-- A DFunId will have a binding in tidy_binds, and so
global = isExternalName name
local = not global
internal = not external
- mb_parent = nameParent_maybe name
loc = nameSrcLoc name
(occ_env', occ') = tidyOccName occ_env (nameOccName name)
(us1, us2) = splitUniqSupply (nsUniqs nc)
uniq = uniqFromSupply us1
- mk_new_external nc = allocateGlobalBinder nc mod occ' mb_parent loc
+ mk_new_external nc = allocateGlobalBinder nc mod occ' loc
-- If we want to externalise a currently-local name, check
-- whether we have already assigned a unique for it.
-- If so, use it; if not, extend the table.