summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÖmer Sinan Ağacan <omeragacan@gmail.com>2018-12-24 12:02:27 (GMT)
committerÖmer Sinan Ağacan <omeragacan@gmail.com>2018-12-24 12:02:39 (GMT)
commit8a0fca09565df99474568888253415f9bbe0fb68 (patch)
tree56ca4015707cc1ef0a059705951d7b13eb94f913
parent5499f12f32a8deaa2a30c13359473b1178236341 (diff)
downloadghc-8a0fca09565df99474568888253415f9bbe0fb68.zip
ghc-8a0fca09565df99474568888253415f9bbe0fb68.tar.gz
ghc-8a0fca09565df99474568888253415f9bbe0fb68.tar.bz2
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
-rw-r--r--compiler/coreSyn/PprCore.hs8
-rw-r--r--testsuite/tests/simplCore/should_compile/T16038/T16038.stdout3
-rw-r--r--testsuite/tests/simplCore/should_compile/T5996.stdout1
3 files changed, 7 insertions, 5 deletions
diff --git a/compiler/coreSyn/PprCore.hs b/compiler/coreSyn/PprCore.hs
index f22d803..5fe033b 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
diff --git a/testsuite/tests/simplCore/should_compile/T16038/T16038.stdout b/testsuite/tests/simplCore/should_compile/T16038/T16038.stdout
index f52fd1b..eec60ec 100644
--- a/testsuite/tests/simplCore/should_compile/T16038/T16038.stdout
+++ b/testsuite/tests/simplCore/should_compile/T16038/T16038.stdout
@@ -1,8 +1,5 @@
Rec {
$fEqHsExpr_$c/=
-$fEqHsExpr_$c/=
-$fEqHsExpr
$fEqHsExpr
$fEqHsExpr_$c==
-$fEqHsExpr_$c==
end Rec }
diff --git a/testsuite/tests/simplCore/should_compile/T5996.stdout b/testsuite/tests/simplCore/should_compile/T5996.stdout
index b8a3398..e56cd1f 100644
--- a/testsuite/tests/simplCore/should_compile/T5996.stdout
+++ b/testsuite/tests/simplCore/should_compile/T5996.stdout
@@ -1,2 +1 @@
-y2
y2 = x2