diff options
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 |
commit | 8a0fca09565df99474568888253415f9bbe0fb68 (patch) | |
tree | 56ca4015707cc1ef0a059705951d7b13eb94f913 | |
parent | 5499f12f32a8deaa2a30c13359473b1178236341 (diff) | |
download | haskell-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
-rw-r--r-- | compiler/coreSyn/PprCore.hs | 8 | ||||
-rw-r--r-- | testsuite/tests/simplCore/should_compile/T16038/T16038.stdout | 3 | ||||
-rw-r--r-- | testsuite/tests/simplCore/should_compile/T5996.stdout | 1 |
3 files changed, 7 insertions, 5 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 diff --git a/testsuite/tests/simplCore/should_compile/T16038/T16038.stdout b/testsuite/tests/simplCore/should_compile/T16038/T16038.stdout index f52fd1b79c..eec60ece9c 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 b8a3398c16..e56cd1f491 100644 --- a/testsuite/tests/simplCore/should_compile/T5996.stdout +++ b/testsuite/tests/simplCore/should_compile/T5996.stdout @@ -1,2 +1 @@ -y2 y2 = x2 |