import CoreUnfold ( UnfoldingGuidance(..) )
import Id ( mkPreludeId )
import IdInfo -- quite a few things
-import Name ( Name(..) )
-import NameTypes ( mkPreludeCoreName )
+import Name ( mkBuiltinName )
import PrelMods ( pRELUDE_BUILTIN )
import PrimOp ( primOpInfo, tagOf_PrimOp, primOp_str,
- PrimOpInfo(..), PrimOpResultInfo(..)
- )
+ PrimOpInfo(..), PrimOpResultInfo(..) )
+import RnHsSyn ( RnName(..) )
import Type ( mkForAllTys, mkFunTys, applyTyCon )
import TysWiredIn ( boolTy )
import Unique ( mkPrimOpIdUnique )
\end{code}
\begin{code}
-primOpNameInfo :: PrimOp -> (FAST_STRING, Name)
+primOpNameInfo :: PrimOp -> (FAST_STRING, RnName)
primOpId :: PrimOp -> Id
-primOpNameInfo op = (primOp_str op, WiredInVal (primOpId op))
+primOpNameInfo op = (primOp_str op, WiredInId (primOpId op))
primOpId op
= case (primOpInfo op) of
(length arg_tys) -- arity
where
mk_prim_Id prim_op mod name tyvar_tmpls arg_tys ty arity
- = mkPreludeId
- (mkPrimOpIdUnique (IBOX(tagOf_PrimOp prim_op)))
- (mkPreludeCoreName mod name)
- ty
- (noIdInfo
- `addInfo` (mkArityInfo arity)
- `addInfo_UF` (mkUnfolding EssentialUnfolding
- (mk_prim_unfold prim_op tyvar_tmpls arg_tys)))
+ = mkPreludeId (mkBuiltinName key mod name) ty
+ (noIdInfo `addInfo` (mkArityInfo arity)
+ `addInfo_UF` (mkUnfolding EssentialUnfolding
+ (mk_prim_unfold prim_op tyvar_tmpls arg_tys)))
+ where
+ key = mkPrimOpIdUnique (IBOX(tagOf_PrimOp prim_op))
\end{code}
= panic "IdUtils.mk_prim_unfold"
{-
= let
- (inst_env, tyvars, tyvar_tys) = instantiateTyVars tvs (map getItsUnique tvs)
+ (inst_env, tyvars, tyvar_tys) = instantiateTyVars tvs (map uniqueOf tvs)
inst_arg_tys = map (instantiateTauTy inst_env) arg_tys
vars = mkTemplateLocals inst_arg_tys
in