From cb8efb737dae6e41f28d471883df67724a33120f Mon Sep 17 00:00:00 2001 From: Manuel M T Chakravarty Date: Fri, 4 Aug 2006 19:39:05 +0000 Subject: [PATCH] Massive patch for the first months work adding System FC to GHC #8 Broken up massive patch -=chak Original log message: This is (sadly) all done in one patch to avoid Darcs bugs. It's not complete work... more FC stuff to come. A compiler using just this patch will fail dismally. --- compiler/coreSyn/PprCore.lhs | 27 +++++++++------------------ compiler/coreSyn/PprExternalCore.lhs | 2 +- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/compiler/coreSyn/PprCore.lhs b/compiler/coreSyn/PprCore.lhs index 0e3b82d..36c7df0 100644 --- a/compiler/coreSyn/PprCore.lhs +++ b/compiler/coreSyn/PprCore.lhs @@ -40,6 +40,7 @@ import IdInfo ( cprInfo, ppCprInfo, strictnessInfo, ppStrictnessInfo ) import DataCon ( dataConTyCon ) import TyCon ( tupleTyConBoxity, isTupleTyCon ) import Type ( pprParendType, pprType, pprParendKind ) +import Coercion ( coercionKindTyConApp ) import BasicTypes ( tupleParens, isNoOcc, isAlwaysActive ) import Util ( lengthIs ) import Outputable @@ -122,6 +123,14 @@ ppr_expr add_par (Type ty) = add_par (ptext SLIT("TYPE") <+> ppr ty) -- Wierd ppr_expr add_par (Var name) = ppr name ppr_expr add_par (Lit lit) = ppr lit +ppr_expr add_par (Cast expr co) + = add_par $ + sep [pprParendExpr expr, + ptext SLIT("`cast`") <+> parens (pprCo co)] + where + pprCo co = sep [ppr co, dcolon <+> ppr (coercionKindTyConApp co)] + + ppr_expr add_par expr@(Lam _ _) = let (bndrs, body) = collectBinders expr @@ -214,24 +223,6 @@ ppr_expr add_par (Let bind expr) ppr_expr add_par (Note (SCC cc) expr) = add_par (sep [pprCostCentreCore cc, pprCoreExpr expr]) -#ifdef DEBUG -ppr_expr add_par (Note (Coerce to_ty from_ty) expr) - = add_par $ - getPprStyle $ \ sty -> - if debugStyle sty then - sep [ptext SLIT("__coerce") <+> - sep [pprParendType to_ty, pprParendType from_ty], - pprParendExpr expr] - else - sep [hsep [ptext SLIT("__coerce"), pprParendType to_ty], - pprParendExpr expr] -#else -ppr_expr add_par (Note (Coerce to_ty from_ty) expr) - = add_par $ - sep [sep [ptext SLIT("__coerce"), nest 2 (pprParendType to_ty)], - pprParendExpr expr] -#endif - ppr_expr add_par (Note InlineMe expr) = add_par $ ptext SLIT("__inline_me") <+> pprParendExpr expr diff --git a/compiler/coreSyn/PprExternalCore.lhs b/compiler/coreSyn/PprExternalCore.lhs index 8e9dbfe..b568f63 100644 --- a/compiler/coreSyn/PprExternalCore.lhs +++ b/compiler/coreSyn/PprExternalCore.lhs @@ -132,7 +132,7 @@ pexp (Let vd e) = (text "%let" <+> pvdefg vd) $$ (text "%in" <+> pexp e) pexp (Case e vb ty alts) = sep [text "%case" <+> parens (paty ty) <+> paexp e, text "%of" <+> pvbind vb] $$ (indent (braces (vcat (punctuate (char ';') (map palt alts))))) -pexp (Coerce t e) = (text "%coerce" <+> paty t) $$ pexp e +pexp (Cast e co) = (text "%cast" <+> pexp e) $$ paty co pexp (Note s e) = (text "%note" <+> pstring s) $$ pexp e pexp (External n t) = (text "%external" <+> pstring n) $$ paty t pexp e = pfexp e -- 1.7.10.4