X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FcoreSyn%2FPprCore.lhs;h=8713e74411363f7942c45e1ec5cce568c4afd657;hp=864f4bdcb021d2d556a182b1d1115326cff96d67;hb=9da4639011348fb6c318e3cba4b08622f811d9c4;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1 diff --git a/compiler/coreSyn/PprCore.lhs b/compiler/coreSyn/PprCore.lhs index 864f4bd..8713e74 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 ( coercionKindPredTy ) 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 (coercionKindPredTy co)] + + ppr_expr add_par expr@(Lam _ _) = let (bndrs, body) = collectBinders expr @@ -156,11 +165,9 @@ ppr_expr add_par (Case expr var ty [(con,args,rhs)]) = add_par $ sep [sep [ptext SLIT("case") <+> pprCoreExpr expr, ifPprDebug (braces (ppr ty)), - hsep [ptext SLIT("of"), - ppr_bndr var, - char '{', - ppr_case_pat con args - ]], + sep [ptext SLIT("of") <+> ppr_bndr var, + char '{' <+> ppr_case_pat con args] + ], pprCoreExpr rhs, char '}' ] @@ -214,27 +221,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 InlineCall expr) - = add_par (ptext SLIT("__inline_call") <+> pprParendExpr expr) - ppr_expr add_par (Note InlineMe expr) = add_par $ ptext SLIT("__inline_me") <+> pprParendExpr expr @@ -254,7 +240,7 @@ ppr_case_pat con@(DataAlt dc) args tc = dataConTyCon dc ppr_case_pat con args - = ppr con <+> hsep (map ppr_bndr args) <+> arrow + = ppr con <+> sep (map ppr_bndr args) <+> arrow where ppr_bndr = pprBndr CaseBind @@ -279,8 +265,13 @@ pprCoreBinder LetBind binder -- Lambda bound type variables are preceded by "@" pprCoreBinder LambdaBind bndr = parens (pprTypedBinder bndr) --- Case bound things don't get a signature or a herald -pprCoreBinder CaseBind bndr = pprUntypedBinder bndr +-- Case bound things don't get a signature or a herald, unless we have debug on +pprCoreBinder CaseBind bndr + = getPprStyle $ \ sty -> + if debugStyle sty then + parens (pprTypedBinder bndr) + else + pprUntypedBinder bndr pprUntypedBinder binder | isTyVar binder = ptext SLIT("@") <+> ppr binder -- NB: don't print kind @@ -319,7 +310,7 @@ pprIdBndrInfo info doc | no_info = empty | otherwise - = brackets $ hcat [ppr prag_info, ppr occ_info, + = brackets $ hsep [ppr prag_info, ppr occ_info, ppr dmd_info, ppr lbv_info #ifdef OLD_STRICTNESS , ppr (demandInfo id)