diff options
Diffstat (limited to 'src/Haddock')
| -rw-r--r-- | src/Haddock/Backends/LaTeX.hs | 9 | ||||
| -rw-r--r-- | src/Haddock/Backends/Xhtml/Decl.hs | 10 | ||||
| -rw-r--r-- | src/Haddock/Convert.hs | 5 | ||||
| -rw-r--r-- | src/Haddock/Interface/AttachInstances.hs | 5 | ||||
| -rw-r--r-- | src/Haddock/Interface/Rename.hs | 2 | 
5 files changed, 28 insertions, 3 deletions
| diff --git a/src/Haddock/Backends/LaTeX.hs b/src/Haddock/Backends/LaTeX.hs index c3a8faa0..21c76942 100644 --- a/src/Haddock/Backends/LaTeX.hs +++ b/src/Haddock/Backends/LaTeX.hs @@ -883,6 +883,15 @@ ppr_mono_ty ctxt_prec (HsParTy ty) unicode  ppr_mono_ty ctxt_prec (HsDocTy ty _) unicode    = ppr_mono_lty ctxt_prec ty unicode +ppr_mono_ty _ (HsTyLit t) u = ppr_tylit t u + + +ppr_tylit :: HsTyLit -> Bool -> LaTeX +ppr_tylit (HsNumTy n) _ = integer n +ppr_tylit (HsStrTy s) _ = text (show s) +  -- XXX: Ok in verbatim, but not otherwise +  -- XXX: Do something with Unicode parameter? +  ppr_fun_ty :: Int -> LHsType DocName -> LHsType DocName -> Bool -> LaTeX  ppr_fun_ty ctxt_prec ty1 ty2 unicode diff --git a/src/Haddock/Backends/Xhtml/Decl.hs b/src/Haddock/Backends/Xhtml/Decl.hs index ee0223c2..9e051914 100644 --- a/src/Haddock/Backends/Xhtml/Decl.hs +++ b/src/Haddock/Backends/Xhtml/Decl.hs @@ -697,8 +697,8 @@ ppr_mono_ty ctxt_prec (HsOpTy ty1 (_, op) ty2) unicode qual    = maybeParen ctxt_prec pREC_FUN $      ppr_mono_lty pREC_OP ty1 unicode qual <+> ppr_op <+> ppr_mono_lty pREC_OP ty2 unicode qual    where -    ppr_op = if not (isSymOcc occName) then quote (ppLDocName qual op) else ppLDocName qual op -    occName = nameOccName . getName . unLoc $ op +    ppr_op = if not (isSymOcc occ) then quote (ppLDocName qual op) else ppLDocName qual op +    occ = nameOccName . getName . unLoc $ op  ppr_mono_ty ctxt_prec (HsParTy ty) unicode qual  --  = parens (ppr_mono_lty pREC_TOP ty) @@ -707,6 +707,12 @@ ppr_mono_ty ctxt_prec (HsParTy ty) unicode qual  ppr_mono_ty ctxt_prec (HsDocTy ty _) unicode qual    = ppr_mono_lty ctxt_prec ty unicode qual +ppr_mono_ty _ (HsTyLit n) _ _ = ppr_tylit n + +ppr_tylit :: HsTyLit -> Html +ppr_tylit (HsNumTy n) = toHtml (show n) +ppr_tylit (HsStrTy s) = toHtml (show s) +  ppr_fun_ty :: Int -> LHsType DocName -> LHsType DocName -> Bool -> Qualification -> Html  ppr_fun_ty ctxt_prec ty1 ty2 unicode qual diff --git a/src/Haddock/Convert.hs b/src/Haddock/Convert.hs index 0470a5f5..e7409990 100644 --- a/src/Haddock/Convert.hs +++ b/src/Haddock/Convert.hs @@ -304,6 +304,11 @@ synifyType s forallty@(ForAllTy _tv _ty) =        sTau = synifyType WithinType tau       in noLoc $             HsForAllTy forallPlicitness sTvs sCtx sTau +synifyType _ (LitTy t) = noLoc $ HsTyLit $ synifyTyLit t + +synifyTyLit :: TyLit -> HsTyLit +synifyTyLit (NumTyLit n) = HsNumTy n +synifyTyLit (StrTyLit s) = HsStrTy s  synifyKindSig :: Kind -> HsBndrSig (LHsKind Name)  synifyKindSig k = HsBSig (synifyType (error "synifyKind") k) placeHolderBndrs diff --git a/src/Haddock/Interface/AttachInstances.hs b/src/Haddock/Interface/AttachInstances.hs index 90416cd0..a4d4764e 100644 --- a/src/Haddock/Interface/AttachInstances.hs +++ b/src/Haddock/Interface/AttachInstances.hs @@ -106,7 +106,9 @@ getAllInfo name = withSession $ \hsc_env -> do  -- in Haddock output) and unifying special tycons with normal ones.  -- For the benefit of the user (looks nice and predictable) and the  -- tests (which prefer output to be deterministic). -data SimpleType = SimpleType Name [SimpleType] deriving (Eq,Ord) +data SimpleType = SimpleType Name [SimpleType] +                | SimpleTyLit TyLit +                  deriving (Eq,Ord)  instHead :: ([TyVar], [PredType], Class, [Type]) -> ([Int], Name, [SimpleType]) @@ -126,6 +128,7 @@ instHead (_, _, cls, args)        where (SimpleType s ts) = simplify t1      simplify (TyVarTy v) = SimpleType (tyVarName v) []      simplify (TyConApp tc ts) = SimpleType (tyConName tc) (map simplify ts) +    simplify (LitTy l) = SimpleTyLit l  -- sortImage f = sortBy (\x y -> compare (f x) (f y)) diff --git a/src/Haddock/Interface/Rename.hs b/src/Haddock/Interface/Rename.hs index 7417d234..1c54216b 100644 --- a/src/Haddock/Interface/Rename.hs +++ b/src/Haddock/Interface/Rename.hs @@ -259,6 +259,8 @@ renameType t = case t of      doc' <- renameLDocHsSyn doc      return (HsDocTy ty' doc') +  HsTyLit x -> return (HsTyLit x) +    _ -> error "renameType" | 
