Better pretty-printing for CHoleCan
authorSimon Peyton Jones <simonpj@microsoft.com>
Wed, 23 Aug 2017 12:48:07 +0000 (13:48 +0100)
committerSimon Peyton Jones <simonpj@microsoft.com>
Thu, 24 Aug 2017 13:39:29 +0000 (14:39 +0100)
Debug-only; no change in mainstream behaviour

compiler/hsSyn/HsExpr.hs
compiler/typecheck/TcRnTypes.hs

index 1bde776..aaebce5 100644 (file)
@@ -196,7 +196,8 @@ data UnboundVar
   deriving Data
 
 instance Outputable UnboundVar where
-    ppr = ppr . unboundVarOcc
+    ppr (OutOfScope occ _) = text "OutOfScope" <> parens (ppr occ)
+    ppr (TrueExprHole occ) = text "ExprHole"   <> parens (ppr occ)
 
 unboundVarOcc :: UnboundVar -> OccName
 unboundVarOcc (OutOfScope occ _) = occ
index 381710b..f735a93 100644 (file)
@@ -1671,6 +1671,10 @@ data Hole = ExprHole UnboundVar
           | TypeHole OccName
             -- ^ A hole in a type (PartialTypeSignatures)
 
+instance Outputable Hole where
+  ppr (ExprHole ub)  = ppr ub
+  ppr (TypeHole occ) = text "TypeHole" <> parens (ppr occ)
+
 holeOcc :: Hole -> OccName
 holeOcc (ExprHole uv)  = unboundVarOcc uv
 holeOcc (TypeHole occ) = occ
@@ -1784,7 +1788,7 @@ instance Outputable Ct where
             | pend_sc   -> text "CDictCan(psc)"
             | otherwise -> text "CDictCan"
          CIrredEvCan {}   -> text "CIrredEvCan"
-         CHoleCan { cc_hole = hole } -> text "CHoleCan:" <+> ppr (holeOcc hole)
+         CHoleCan { cc_hole = hole } -> text "CHoleCan:" <+> ppr hole
 
 {-
 ************************************************************************