import TysWiredIn ( intTy, stringTy, mkListTy, unitTy, boolTy )
import PrelNames ( breakpointJumpName, breakpointCondJumpName )
import NameEnv ( mkNameEnv )
+import TcEnv ( tcExtendIdEnv )
#endif
import HsSyn ( emptyLHsBinds )
import RdrName ( GlobalRdrEnv, LocalRdrEnv, emptyLocalRdrEnv )
import Name ( Name, mkInternalName, tidyNameOcc, nameOccName, getSrcLoc )
import Type ( Type )
-import TcType ( tcIsTyVarTy, tcGetTyVar )
+import TcType ( TcType, tcIsTyVarTy, tcGetTyVar )
import NameEnv ( extendNameEnvList, nameEnvElts )
import InstEnv ( emptyInstEnv )
+import FamInstEnv ( emptyFamInstEnv )
import Var ( setTyVarName )
+import Id ( mkSysLocal )
import VarSet ( emptyVarSet )
import VarEnv ( TidyEnv, emptyTidyEnv, extendVarEnv )
import ErrUtils ( Message, Messages, emptyMessages, errorsFound,
import OccName ( emptyOccEnv, tidyOccName )
import Bag ( emptyBag )
import Outputable
-import UniqSupply ( UniqSupply, mkSplitUniqSupply, uniqFromSupply, splitUniqSupply )
+import UniqSupply ( UniqSupply, mkSplitUniqSupply, uniqFromSupply, uniqsFromSupply, splitUniqSupply )
import UniqFM ( unitUFM )
import Unique ( Unique )
import DynFlags ( DynFlags(..), DynFlag(..), dopt, dopt_set,
dopt_unset, GhcMode )
import StaticFlags ( opt_PprStyle_Debug )
+import FastString ( FastString )
import Bag ( snocBag, unionBags )
import Panic ( showException )
tcg_type_env = hsc_global_type_env hsc_env,
tcg_type_env_var = type_env_var,
tcg_inst_env = emptyInstEnv,
+ tcg_fam_inst_env = emptyFamInstEnv,
tcg_inst_uses = dfuns_var,
tcg_th_used = th_var,
tcg_exports = emptyNameSet,
= mkGlobalId VanillaGlobal breakpointCondJumpName
(basicType (FunTy boolTy)) vanillaIdInfo
}
- ; extendIdEnv [breakpointJumpId, breakpointCondJumpId] thing_inside}
+ ; tcExtendIdEnv [breakpointJumpId, breakpointCondJumpId] thing_inside}
#else
= thing_inside
#endif
newLocalName :: Name -> TcRnIf gbl lcl Name
newLocalName name -- Make a clone
- = newUnique `thenM` \ uniq ->
- returnM (mkInternalName uniq (nameOccName name) (getSrcLoc name))
+ = do { uniq <- newUnique
+ ; return (mkInternalName uniq (nameOccName name) (getSrcLoc name)) }
+
+newSysLocalIds :: FastString -> [TcType] -> TcRnIf gbl lcl [TcId]
+newSysLocalIds fs tys
+ = do { us <- newUniqueSupply
+ ; return (zipWith (mkSysLocal fs) (uniqsFromSupply us) tys) }
\end{code}