diff options
-rw-r--r-- | ghc/compiler/iface/IfaceSyn.lhs | 4 | ||||
-rw-r--r-- | ghc/compiler/typecheck/TcSplice.lhs | 4 | ||||
-rw-r--r-- | ghc/compiler/types/TyCon.lhs | 7 |
3 files changed, 10 insertions, 5 deletions
diff --git a/ghc/compiler/iface/IfaceSyn.lhs b/ghc/compiler/iface/IfaceSyn.lhs index 6a0a1c79ba..3d3029cc1d 100644 --- a/ghc/compiler/iface/IfaceSyn.lhs +++ b/ghc/compiler/iface/IfaceSyn.lhs @@ -53,7 +53,7 @@ import TyCon ( TyCon, ArgVrcs, AlgTyConRhs(..), isRecursiveTyCon, isForeignTyCo isSynTyCon, isAlgTyCon, isPrimTyCon, isFunTyCon, isTupleTyCon, tupleTyConBoxity, tyConHasGenerics, tyConArgVrcs, getSynTyConDefn, - tyConArity, tyConTyVars, algTcRhs, tyConExtName ) + tyConArity, tyConTyVars, algTyConRhs, tyConExtName ) import DataCon ( dataConName, dataConSig, dataConFieldLabels, dataConStrictMarks, dataConTyCon, dataConIsInfix, isVanillaDataCon ) import Class ( FunDep, DefMeth, classExtraBigSig, classTyCon ) @@ -490,7 +490,7 @@ tyThingToIfaceDecl _ abstract_tcs ext (ATyCon tycon) | isAlgTyCon tycon = IfaceData { ifName = getOccName tycon, ifTyVars = toIfaceTvBndrs tyvars, - ifCons = ifaceConDecls (algTcRhs tycon), + ifCons = ifaceConDecls (algTyConRhs tycon), ifRec = boolToRecFlag (isRecursiveTyCon tycon), ifVrcs = tyConArgVrcs tycon, ifGeneric = tyConHasGenerics tycon } diff --git a/ghc/compiler/typecheck/TcSplice.lhs b/ghc/compiler/typecheck/TcSplice.lhs index 08e47eeb54..a9d632e030 100644 --- a/ghc/compiler/typecheck/TcSplice.lhs +++ b/ghc/compiler/typecheck/TcSplice.lhs @@ -45,7 +45,7 @@ import TcRnMonad import IfaceEnv ( lookupOrig ) import Class ( Class, classBigSig ) import TyCon ( TyCon, AlgTyConRhs(..), tyConTyVars, getSynTyConDefn, - isSynTyCon, isNewTyCon, tyConDataCons, algTcRhs ) + isSynTyCon, isNewTyCon, tyConDataCons, algTyConRhs ) import DataCon ( DataCon, dataConTyCon, dataConOrigArgTys, dataConStrictMarks, dataConName, dataConFieldLabels, dataConWrapId, dataConIsInfix, isVanillaDataCon ) @@ -569,7 +569,7 @@ reifyTyCon tc ; return (TH.TySynD (reifyName tc) (reifyTyVars tvs) rhs') } reifyTyCon tc - = case algTcRhs tc of + = case algTyConRhs tc of NewTyCon data_con _ _ -> do { con <- reifyDataCon data_con ; return (TH.NewtypeD [] (reifyName tc) (reifyTyVars (tyConTyVars tc)) diff --git a/ghc/compiler/types/TyCon.lhs b/ghc/compiler/types/TyCon.lhs index 78cf5be1bb..3c7206ba2e 100644 --- a/ghc/compiler/types/TyCon.lhs +++ b/ghc/compiler/types/TyCon.lhs @@ -33,7 +33,7 @@ module TyCon( tyConUnique, tyConTyVars, tyConArgVrcs, - algTcRhs, tyConDataCons, tyConDataCons_maybe, tyConFamilySize, + algTyConRhs, tyConDataCons, tyConDataCons_maybe, tyConFamilySize, tyConFields, tyConSelIds, tyConStupidTheta, tyConArity, @@ -490,6 +490,11 @@ tyConFields other_tycon = [] tyConSelIds :: TyCon -> [Id] tyConSelIds tc = [id | (_,_,id) <- tyConFields tc] + +algTyConRhs :: TyCon -> AlgTyConRhs +algTyConRhs (AlgTyCon {algTcRhs = rhs}) = rhs +algTyConRhs (TupleTyCon {dataCon = con}) = DataTyCon (Just []) [con] False +algTyConRhs other = pprPanic "algTyConRhs" (ppr other) \end{code} \begin{code} |