X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FhsSyn%2FConvert.lhs;fp=ghc%2Fcompiler%2FhsSyn%2FConvert.lhs;h=ab9cf2c2787ad049aceb62e637be792f6cdd743e;hb=9137abfe168cec9d253484ee120d0cc744f2bc59;hp=751623da35780d296ac5040f00e6ca15c11978b8;hpb=b16992d66aa5f610de586eb8a720214b8065bd65;p=ghc-hetmet.git diff --git a/ghc/compiler/hsSyn/Convert.lhs b/ghc/compiler/hsSyn/Convert.lhs index 751623d..ab9cf2c 100644 --- a/ghc/compiler/hsSyn/Convert.lhs +++ b/ghc/compiler/hsSyn/Convert.lhs @@ -105,21 +105,22 @@ cvt_top loc (ForeignD (ExportF callconv as nm typ)) mk_con loc con = L loc $ mk_nlcon con where + -- Can't handle GADTs yet mk_nlcon con = case con of NormalC c strtys - -> ConDecl (L loc (cName c)) noExistentials (noContext loc) - (PrefixCon (map mk_arg strtys)) + -> ConDecl (L loc (cName c)) Explicit noExistentials (noContext loc) + (PrefixCon (map mk_arg strtys)) ResTyH98 RecC c varstrtys - -> ConDecl (L loc (cName c)) noExistentials (noContext loc) - (RecCon (map mk_id_arg varstrtys)) + -> ConDecl (L loc (cName c)) Explicit noExistentials (noContext loc) + (RecCon (map mk_id_arg varstrtys)) ResTyH98 InfixC st1 c st2 - -> ConDecl (L loc (cName c)) noExistentials (noContext loc) - (InfixCon (mk_arg st1) (mk_arg st2)) + -> ConDecl (L loc (cName c)) Explicit noExistentials (noContext loc) + (InfixCon (mk_arg st1) (mk_arg st2)) ResTyH98 ForallC tvs ctxt (ForallC tvs' ctxt' con') -> mk_nlcon (ForallC (tvs ++ tvs') (ctxt ++ ctxt') con') ForallC tvs ctxt con' -> case mk_nlcon con' of - ConDecl l [] (L _ []) x -> - ConDecl l (cvt_tvs loc tvs) (cvt_context loc ctxt) x + ConDecl l _ [] (L _ []) x ResTyH98 -> + ConDecl l Explicit (cvt_tvs loc tvs) (cvt_context loc ctxt) x ResTyH98 c -> panic "ForallC: Can't happen" mk_arg (IsStrict, ty) = L loc $ HsBangTy HsStrict (cvtType loc ty) mk_arg (NotStrict, ty) = cvtType loc ty