X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fiface%2FMkIface.lhs;h=8213cb1a8061886858de9e7825315e47eb000470;hb=e04f49034968322349e0f3f608e1b5a856fd6521;hp=cca8ab57d71f06a1892712994df91a1c5a4168a2;hpb=6777144f7522d8db5935737e12fa451ca3211e6d;p=ghc-hetmet.git diff --git a/compiler/iface/MkIface.lhs b/compiler/iface/MkIface.lhs index cca8ab5..8213cb1 100644 --- a/compiler/iface/MkIface.lhs +++ b/compiler/iface/MkIface.lhs @@ -339,8 +339,19 @@ mkIface hsc_env maybe_old_iface deliberatelyOmitted x = panic ("Deliberately omitted: " ++ x) ifFamInstTcName = ifaceTyConName . ifFamInstTyCon - flattenVectInfo (VectInfo ccVar) = - IfaceVectInfo [Var.varName v | (v, _) <- varEnvElts ccVar] + flattenVectInfo (VectInfo { vectInfoCCVar = ccVar + , vectInfoCCTyCon = ccTyCon + }) = + IfaceVectInfo { + ifaceVectInfoCCVar = [ Var.varName v + | (v, _) <- varEnvElts ccVar], + ifaceVectInfoCCTyCon = [ tyConName t + | (t, t_CC) <- nameEnvElts ccTyCon + , t /= t_CC], + ifaceVectInfoCCTyConReuse = [ tyConName t + | (t, t_CC) <- nameEnvElts ccTyCon + , t == t_CC] + } ----------------------------- writeIfaceFile :: DynFlags -> ModLocation -> ModIface -> IO () @@ -1070,10 +1081,12 @@ tyThingToIfaceDecl (AClass clas) tyThingToIfaceDecl (ATyCon tycon) | isSynTyCon tycon - = IfaceSyn { ifName = getOccName tycon, - ifTyVars = toIfaceTvBndrs tyvars, + = IfaceSyn { ifName = getOccName tycon, + ifTyVars = toIfaceTvBndrs tyvars, ifOpenSyn = syn_isOpen, - ifSynRhs = toIfaceType syn_tyki } + ifSynRhs = toIfaceType syn_tyki, + ifFamInst = famInstToIface (tyConFamInst_maybe tycon) + } | isAlgTyCon tycon = IfaceData { ifName = getOccName tycon, @@ -1346,6 +1359,8 @@ toIfaceVar v | Just fcall <- isFCallId_maybe v = IfaceFCall fcall (toIfaceType (idType v)) -- Foreign calls have special syntax | isExternalName name = IfaceExt name + | Just (TickBox m ix) <- isTickBoxOp_maybe v + = IfaceTick m ix | otherwise = IfaceLcl (getFS name) where name = idName v