-- IdInfo stuff
setIdUnfolding,
- setIdArityInfo,
+ setIdArity,
setIdDemandInfo, setIdNewDemandInfo,
setIdStrictness, setIdNewStrictness, zapIdNewStrictness,
setIdTyGenInfo,
setIdCprInfo,
setIdOccInfo,
- idArity, idArityInfo,
+ idArity,
idDemandInfo, idNewDemandInfo,
idStrictness, idNewStrictness, idNewStrictness_maybe, getNewStrictness,
idTyGenInfo,
idSpecialisation,
idCgInfo,
idCafInfo,
- idCgArity,
idCprInfo,
idLBVarInfo,
idOccInfo,
import Unique ( Unique, mkBuiltinUnique )
infixl 1 `setIdUnfolding`,
- `setIdArityInfo`,
+ `setIdArity`,
`setIdDemandInfo`,
`setIdStrictness`,
`setIdNewDemandInfo`,
DataConWrapId con -> True
other -> False
- -- hasNoBinding returns True of an Id which may not have a
- -- binding, even though it is defined in this module. Notably,
- -- the constructors of a dictionary are in this situation.
+-- hasNoBinding returns True of an Id which may not have a
+-- binding, even though it is defined in this module.
+-- Data constructor workers used to be things of this kind, but
+-- they aren't any more. Instead, we inject a binding for
+-- them at the CorePrep stage.
hasNoBinding id = case globalIdDetails id of
- DataConId _ -> True
PrimOpId _ -> True
FCallId _ -> True
other -> False
\begin{code}
---------------------------------
-- ARITY
-idArityInfo :: Id -> ArityInfo
-idArityInfo id = arityInfo (idInfo id)
-
idArity :: Id -> Arity
-idArity id = arityLowerBound (idArityInfo id)
+idArity id = arityInfo (idInfo id)
-setIdArityInfo :: Id -> Arity -> Id
-setIdArityInfo id arity = modifyIdInfo (`setArityInfo` arity) id
+setIdArity :: Id -> Arity -> Id
+setIdArity id arity = modifyIdInfo (`setArityInfo` arity) id
---------------------------------
-- STRICTNESS
#endif
---------------------------------
- -- CG ARITY
-idCgArity :: Id -> Arity
-#ifdef DEBUG
-idCgArity id = case cgInfo (idInfo id) of
- NoCgInfo -> pprPanic "idCgArity" (ppr id)
- info -> cgArity info
-#else
-idCgArity id = cgArity (idCgInfo id)
-#endif
-
- ---------------------------------
-- CPR INFO
idCprInfo :: Id -> CprInfo
idCprInfo id = case cprInfo (idInfo id) of
zapDemandIdInfo id = maybeModifyIdInfo zapDemandInfo id
\end{code}
+