Print * has Unicode star with -fprint-unicode-syntax
authorBen Gamari <bgamari.foss@gmail.com>
Mon, 8 Feb 2016 15:29:04 +0000 (16:29 +0100)
committerBen Gamari <ben@smart-cactus.org>
Tue, 9 Feb 2016 09:34:21 +0000 (10:34 +0100)
Reviewers: austin, thomie

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D1893

compiler/main/DynFlags.hs
compiler/types/TyCoRep.hs
compiler/utils/Outputable.hs

index 992f47d..0fa7434 100644 (file)
@@ -1817,7 +1817,10 @@ lang_set dflags lang =
             extensionFlags = flattenExtensionFlags lang (extensions dflags)
           }
 
--- | Check whether to use unicode syntax for output
+-- | An internal helper to check whether to use unicode syntax for output.
+--
+-- Note: You should very likely be using 'Outputable.unicodeSyntax' instead
+-- of this function.
 useUnicodeSyntax :: DynFlags -> Bool
 useUnicodeSyntax = gopt Opt_PrintUnicodeSyntax
 
index bf61a13..6a13213 100644 (file)
@@ -2648,7 +2648,8 @@ pprTyTcApp p tc tys
 
   | tc `hasKey` tYPETyConKey
   , [TyConApp lev_tc []] <- tys
-  = if | lev_tc `hasKey` liftedDataConKey   -> char '*'
+  = if | lev_tc `hasKey` liftedDataConKey   ->
+           unicodeSyntax (char '★') (char '*')
        | lev_tc `hasKey` unliftedDataConKey -> char '#'
        | otherwise                          -> ppr_deflt
 
index bf0cc90..259b554 100644 (file)
@@ -35,6 +35,7 @@ module Outputable (
         fsep, fcat,
         hang, hangNotEmpty, punctuate, ppWhen, ppUnless,
         speakNth, speakN, speakNOf, plural, isOrAre, doOrDoes,
+        unicodeSyntax,
 
         coloured, PprColour, colType, colCoerc, colDataCon,
         colBinder, bold, keyword,