X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FbasicTypes%2FVar.lhs;h=c52844b81ea17e6253d795836fc0af1854c94a3f;hb=f41e3ea766c340c49b829eabfdea7c77bda2a95e;hp=c1a93707f1a7e6fa3f9240c65b72b7f30e976b05;hpb=9ffadf219cbc4f8ec57264786df936a3cee88aec;p=ghc-hetmet.git diff --git a/compiler/basicTypes/Var.lhs b/compiler/basicTypes/Var.lhs index c1a9370..c52844b 100644 --- a/compiler/basicTypes/Var.lhs +++ b/compiler/basicTypes/Var.lhs @@ -127,8 +127,8 @@ data Var realUnique :: FastInt, varType :: Type, idScope :: IdScope, - idDetails :: IdDetails, -- Stable, doesn't change - idInfo :: IdInfo } -- Unstable, updated by simplifier + id_details :: IdDetails, -- Stable, doesn't change + id_info :: IdInfo } -- Unstable, updated by simplifier data IdScope -- See Note [GlobalId/LocalId] = GlobalId @@ -137,7 +137,6 @@ data IdScope -- See Note [GlobalId/LocalId] data ExportFlag = NotExported -- ^ Not exported: may be discarded as dead code. | Exported -- ^ Exported: kept alive - \end{code} Note [GlobalId/LocalId] @@ -164,7 +163,7 @@ instance Outputable Var where ppr_debug :: Var -> SDoc ppr_debug (TyVar {}) = ptext (sLit "tv") ppr_debug (TcTyVar {tcTyVarDetails = d}) = pprTcTyVarDetails d -ppr_debug (Id { idScope = s, idDetails = d }) = ppr_id_scope s <> pprIdDetails d +ppr_debug (Id { idScope = s, id_details = d }) = ppr_id_scope s <> pprIdDetails d ppr_id_scope :: IdScope -> SDoc ppr_id_scope GlobalId = ptext (sLit "gid") @@ -301,6 +300,14 @@ mkWildCoVar = mkCoVar (mkSysTvName (mkBuiltinUnique 1) (fsLit "co_wild")) type Id = Var type DictId = Var +idInfo :: Id -> IdInfo +idInfo (Id { id_info = info }) = info +idInfo other = pprPanic "idInfo" (ppr other) + +idDetails :: Id -> IdDetails +idDetails (Id { id_details = details }) = details +idDetails other = pprPanic "idDetails" (ppr other) + -- The next three have a 'Var' suffix even though they always build -- Ids, becuase Id.lhs uses 'mkGlobalId' etc with different types mkGlobalVar :: IdDetails -> Name -> Type -> IdInfo -> Id @@ -322,15 +329,15 @@ mk_id name ty scope details info realUnique = getKeyFastInt (nameUnique name), varType = ty, idScope = scope, - idDetails = details, - idInfo = info } + id_details = details, + id_info = info } ------------------- lazySetIdInfo :: Id -> IdInfo -> Var -lazySetIdInfo id info = id { idInfo = info } +lazySetIdInfo id info = id { id_info = info } setIdDetails :: Id -> IdDetails -> Id -setIdDetails id details = id { idDetails = details } +setIdDetails id details = id { id_details = details } globaliseId :: Id -> Id -- ^ If it's a local, make it global @@ -356,7 +363,7 @@ setIdNotExported id = ASSERT( isLocalId id ) %************************************************************************ \begin{code} -isTyVar :: Var -> Bool +isTyVar :: Var -> Bool -- True of both type and coercion variables isTyVar (TyVar {}) = True isTyVar (TcTyVar {}) = True isTyVar _ = False