summaryrefslogtreecommitdiff
path: root/compiler/coreSyn/CoreLint.hs
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2017-08-30 08:57:40 +0100
committerSimon Peyton Jones <simonpj@microsoft.com>2017-08-31 08:16:58 +0100
commit805b29bb873c792ca5bcbd5540026848f9f11a8d (patch)
tree993291054fd388c0e493d11175ec27922d61bb1f /compiler/coreSyn/CoreLint.hs
parentfca196280d38d07a697fbccdd8527821206b33eb (diff)
downloadhaskell-805b29bb873c792ca5bcbd5540026848f9f11a8d.tar.gz
Add debugPprType
We pretty-print a type by converting it to an IfaceType and pretty-printing that. But (a) that's a bit indirect, and (b) delibrately loses information about (e.g.) the kind on the /occurrences/ of a type variable So this patch implements debugPprType, which pretty prints the type directly, with no fancy formatting. It's just used for debugging. I took the opportunity to refactor the debug-pretty-printing machinery a little. In particular, define these functions and use them: ifPprDeubug :: SDoc -> SDOc -> SDoc -- Says what to do with and without -dppr-debug whenPprDebug :: SDoc -> SDoc -- Says what to do with -dppr-debug; without is empty getPprDebug :: (Bool -> SDoc) -> SDoc getPprDebug used to be called sdocPprDebugWith whenPprDebug used to be called ifPprDebug So a lot of files get touched in a very mechanical way
Diffstat (limited to 'compiler/coreSyn/CoreLint.hs')
-rw-r--r--compiler/coreSyn/CoreLint.hs7
1 files changed, 3 insertions, 4 deletions
diff --git a/compiler/coreSyn/CoreLint.hs b/compiler/coreSyn/CoreLint.hs
index 7878e62c5d..92c14bc871 100644
--- a/compiler/coreSyn/CoreLint.hs
+++ b/compiler/coreSyn/CoreLint.hs
@@ -2021,10 +2021,9 @@ addMsg env msgs msg
locs = le_loc env
(loc, cxt1) = dumpLoc (head locs)
cxts = [snd (dumpLoc loc) | loc <- locs]
- context = sdocWithPprDebug $ \dbg -> if dbg
- then vcat (reverse cxts) $$ cxt1 $$
- text "Substitution:" <+> ppr (le_subst env)
- else cxt1
+ context = ifPprDebug (vcat (reverse cxts) $$ cxt1 $$
+ text "Substitution:" <+> ppr (le_subst env))
+ cxt1
mk_msg msg = mkLocMessage SevWarning (mkSrcSpan loc loc) (context $$ msg)