import FastString
import Module
-import Data.List
-import Data.Maybe
-
infixl 3 &&&
\end{code}
data IfaceIdDetails
= IfVanillaId
- | IfRecSelId Bool
+ | IfRecSelId IfaceTyCon Bool
| IfDFunId
data IfaceIdInfo
data IfaceInfoItem
= HsArity Arity
| HsStrictness StrictSig
- | HsInline Activation
+ | HsInline InlinePragma
| HsUnfold IfaceExpr
| HsNoCafRefs
| HsWorker Name Arity -- Worker, if any see IdInfo.WorkerInfo
con_occ = ifConOcc con_decl -- DataCon namespace
wrap_occ = mkDataConWrapperOcc con_occ -- Id namespace
work_occ = mkDataConWorkerOcc con_occ -- Id namespace
- strs = ifConStricts con_decl
has_wrapper = ifConWrapper con_decl -- This is the reason for
-- having the ifConWrapper field!
------------------
instance Outputable IfaceIdDetails where
ppr IfVanillaId = empty
- ppr (IfRecSelId b) = ptext (sLit "RecSel")
- <> if b then ptext (sLit "<naughty>") else empty
+ ppr (IfRecSelId tc b) = ptext (sLit "RecSel") <+> ppr tc
+ <+> if b then ptext (sLit "<naughty>") else empty
ppr IfDFunId = ptext (sLit "DFunId")
instance Outputable IfaceIdInfo where
instance Outputable IfaceInfoItem where
ppr (HsUnfold unf) = ptext (sLit "Unfolding:") <+>
parens (pprIfaceExpr noParens unf)
- ppr (HsInline act) = ptext (sLit "Inline:") <+> ppr act
+ ppr (HsInline prag) = ptext (sLit "Inline:") <+> ppr prag
ppr (HsArity arity) = ptext (sLit "Arity:") <+> int arity
ppr (HsStrictness str) = ptext (sLit "Strictness:") <+> pprIfaceStrictSig str
ppr HsNoCafRefs = ptext (sLit "HasNoCafRefs")