summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorÖmer Sinan Ağacan <omeragacan@gmail.com>2018-12-24 15:02:27 +0300
committerÖmer Sinan Ağacan <omeragacan@gmail.com>2018-12-24 15:02:39 +0300
commit8a0fca09565df99474568888253415f9bbe0fb68 (patch)
tree56ca4015707cc1ef0a059705951d7b13eb94f913 /compiler
parent5499f12f32a8deaa2a30c13359473b1178236341 (diff)
downloadhaskell-8a0fca09565df99474568888253415f9bbe0fb68.tar.gz
Simplify Core output with -dsuppress-type-signatures
Currently we duplicate top-level binder ids for no reason: $fEqHsExpr_$c/= $fEqHsExpr_$c/= = \ @ id_a27U $dEq_a27V eta_B2 eta1_B1 -> case $fEqHsExpr_$c== $dEq_a27V eta_B2 eta1_B1 of { False -> True; True -> False } with this patch we drop the first line when type signatures are not printed (-dsuppress-type-signatures, which is implied by -dsuppress-all) Reviewers: simonpj, bgamari Reviewed By: simonpj Subscribers: rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5472
Diffstat (limited to 'compiler')
-rw-r--r--compiler/coreSyn/PprCore.hs8
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/coreSyn/PprCore.hs b/compiler/coreSyn/PprCore.hs
index f22d803cb1..5fe033b862 100644
--- a/compiler/coreSyn/PprCore.hs
+++ b/compiler/coreSyn/PprCore.hs
@@ -115,7 +115,13 @@ ppr_bind ann (Rec binds) = vcat (map pp binds)
ppr_binding :: OutputableBndr b => Annotation b -> (b, Expr b) -> SDoc
ppr_binding ann (val_bdr, expr)
- = ann expr $$ pprBndr LetBind val_bdr $$ pp_bind
+ = sdocWithDynFlags $ \dflags ->
+ vcat [ ann expr
+ , if gopt Opt_SuppressTypeSignatures dflags
+ then empty
+ else pprBndr LetBind val_bdr
+ , pp_bind
+ ]
where
pp_bind = case bndrIsJoin_maybe val_bdr of
Nothing -> pp_normal_bind