summaryrefslogtreecommitdiff
path: root/compiler/GHC/Hs/Types.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Hs/Types.hs')
-rw-r--r--compiler/GHC/Hs/Types.hs15
1 files changed, 9 insertions, 6 deletions
diff --git a/compiler/GHC/Hs/Types.hs b/compiler/GHC/Hs/Types.hs
index bc7ba47434..d97dd108e6 100644
--- a/compiler/GHC/Hs/Types.hs
+++ b/compiler/GHC/Hs/Types.hs
@@ -16,6 +16,8 @@ GHC.Hs.Types: Abstract syntax: user-defined types
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE TypeApplications #-}
module GHC.Hs.Types (
HsType(..), NewHsTypeX(..), LHsType, HsKind, LHsKind,
@@ -1439,8 +1441,8 @@ instance OutputableBndrId p
instance OutputableBndrId p
=> Outputable (HsTyVarBndr (GhcPass p)) where
- ppr (UserTyVar _ n) = ppr n
- ppr (KindedTyVar _ n k) = parens $ hsep [ppr n, dcolon, ppr k]
+ ppr (UserTyVar _ n) = pprLIdP n
+ ppr (KindedTyVar _ n k) = parens $ hsep [pprLIdP n, dcolon, ppr k]
ppr (XTyVarBndr nec) = noExtCon nec
instance Outputable thing
@@ -1554,7 +1556,7 @@ pprHsType ty = ppr_mono_ty ty
ppr_mono_lty :: (OutputableBndrId p) => LHsType (GhcPass p) -> SDoc
ppr_mono_lty ty = ppr_mono_ty (unLoc ty)
-ppr_mono_ty :: (OutputableBndrId p) => HsType (GhcPass p) -> SDoc
+ppr_mono_ty :: forall p. (OutputableBndrId p) => HsType (GhcPass p) -> SDoc
ppr_mono_ty (HsForAllTy { hst_fvf = fvf, hst_bndrs = tvs, hst_body = ty })
= sep [pprHsForAll fvf tvs noLHsContext, ppr_mono_lty ty]
@@ -1564,8 +1566,8 @@ ppr_mono_ty (HsQualTy { hst_ctxt = ctxt, hst_body = ty })
ppr_mono_ty (HsBangTy _ b ty) = ppr b <> ppr_mono_lty ty
ppr_mono_ty (HsRecTy _ flds) = pprConDeclFields flds
ppr_mono_ty (HsTyVar _ prom (L _ name))
- | isPromoted prom = quote (pprPrefixOcc name)
- | otherwise = pprPrefixOcc name
+ | isPromoted prom = withOutputableBndr @p $ quote (pprPrefixOcc name)
+ | otherwise = withOutputableBndr @p $ pprPrefixOcc name
ppr_mono_ty (HsFunTy _ ty1 ty2) = ppr_fun_ty ty1 ty2
ppr_mono_ty (HsTupleTy _ con tys)
-- Special-case unary boxed tuples so that they are pretty-printed as
@@ -1605,7 +1607,8 @@ ppr_mono_ty (HsAppTy _ fun_ty arg_ty)
ppr_mono_ty (HsAppKindTy _ ty k)
= ppr_mono_lty ty <+> char '@' <> ppr_mono_lty k
ppr_mono_ty (HsOpTy _ ty1 (L _ op) ty2)
- = sep [ ppr_mono_lty ty1
+ = withOutputableBndr @p $
+ sep [ ppr_mono_lty ty1
, sep [pprInfixOcc op, ppr_mono_lty ty2 ] ]
ppr_mono_ty (HsParTy _ ty)