X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Ftypecheck%2FTcRnTypes.lhs;h=33190e798768fc0c01be73acdc82ae3135a8ef79;hb=ff818166a0a06e77becad9e28ed116f3b7f5cc8b;hp=2abdfa5f2bbc9aaba5705ab306f49dab2e6dd4fa;hpb=bd0d26527ddd4a3d3c853331f27839ab822c8f80;p=ghc-hetmet.git diff --git a/ghc/compiler/typecheck/TcRnTypes.lhs b/ghc/compiler/typecheck/TcRnTypes.lhs index 2abdfa5..33190e7 100644 --- a/ghc/compiler/typecheck/TcRnTypes.lhs +++ b/ghc/compiler/typecheck/TcRnTypes.lhs @@ -20,7 +20,7 @@ module TcRnTypes( WhereFrom(..), mkModDeps, -- Typechecker types - TcTyThing(..), GadtRefinement, + TcTyThing(..), pprTcTyThingCategory, GadtRefinement, -- Template Haskell ThStage(..), topStage, topSpliceStage, @@ -48,9 +48,9 @@ import HscTypes ( FixityEnv, GenAvailInfo(..), AvailInfo, HscSource(..), availName, IsBootInterface, Deprecations ) import Packages ( PackageId ) -import Type ( Type, TvSubstEnv, pprParendType ) +import Type ( Type, TvSubstEnv, pprParendType, pprTyThingCategory ) import TcType ( TcTyVarSet, TcType, TcTauType, TcThetaType, SkolemInfo, - TcPredType, TcKind, tcCmpPred, tcCmpType, tcCmpTypes ) + TcPredType, TcKind, tcCmpPred, tcCmpType, tcCmpTypes, pprSkolInfo ) import InstEnv ( DFunId, InstEnv ) import IOEnv import RdrName ( GlobalRdrEnv, LocalRdrEnv ) @@ -414,6 +414,12 @@ instance Outputable TcTyThing where -- Debugging only ifPprDebug (brackets (ppr g <> comma <> ppr tl <> comma <> ppr pl)) ppr (ATyVar tv ty) = text "Type variable" <+> quotes (ppr tv) <+> pprParendType ty ppr (AThing k) = text "AThing" <+> ppr k + +pprTcTyThingCategory :: TcTyThing -> SDoc +pprTcTyThingCategory (AGlobal thing) = pprTyThingCategory thing +pprTcTyThingCategory (ATyVar _ _) = ptext SLIT("Type variable") +pprTcTyThingCategory (ATcId _ _ _) = ptext SLIT("Local identifier") +pprTcTyThingCategory (AThing _) = ptext SLIT("Kinded thing") \end{code} \begin{code} @@ -773,8 +779,6 @@ data InstOrigin \begin{code} pprInstLoc :: InstLoc -> SDoc -pprInstLoc (InstLoc (SigOrigin info) locn _) - = text "arising from" <+> ppr info -- I don't think this happens much, if at all pprInstLoc (InstLoc orig locn _) = hsep [text "arising from", pp_orig orig, text "at", ppr locn] where @@ -785,11 +789,11 @@ pprInstLoc (InstLoc orig locn _) pp_orig (LiteralOrigin lit) = hsep [ptext SLIT("the literal"), quotes (ppr lit)] pp_orig (ArithSeqOrigin seq) = hsep [ptext SLIT("the arithmetic sequence"), quotes (ppr seq)] pp_orig (PArrSeqOrigin seq) = hsep [ptext SLIT("the parallel array sequence"), quotes (ppr seq)] - pp_orig InstSigOrigin = ptext SLIT("instantiating a type signature") - pp_orig InstScOrigin = ptext SLIT("the superclasses of an instance declaration") + pp_orig InstSigOrigin = ptext SLIT("instantiating a type signature") + pp_orig InstScOrigin = ptext SLIT("the superclasses of an instance declaration") pp_orig DerivOrigin = ptext SLIT("the 'deriving' clause of a data type declaration") pp_orig DefaultOrigin = ptext SLIT("a 'default' declaration") - pp_orig DoOrigin = ptext SLIT("a do statement") - pp_orig ProcOrigin = ptext SLIT("a proc expression") - pp_orig (SigOrigin info) = ppr info + pp_orig DoOrigin = ptext SLIT("a do statement") + pp_orig ProcOrigin = ptext SLIT("a proc expression") + pp_orig (SigOrigin info) = pprSkolInfo info \end{code}