[commit: haddock] ghc-new-co: Changes for the new kind-signature stuff (f6c4fd1)
Simon Peyton Jones
simonpj at microsoft.com
Fri Feb 17 18:38:56 CET 2012
Repository : ssh://darcs.haskell.org//srv/darcs/haddock
On branch : ghc-new-co
http://hackage.haskell.org/trac/ghc/changeset/f6c4fd1933618bcff708d1bfedec999ffe922d03
>---------------------------------------------------------------
commit f6c4fd1933618bcff708d1bfedec999ffe922d03
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date: Fri Feb 17 17:38:37 2012 +0000
Changes for the new kind-signature stuff
>---------------------------------------------------------------
src/Haddock/Backends/LaTeX.hs | 2 +-
src/Haddock/Backends/Xhtml/Decl.hs | 4 ++--
src/Haddock/Convert.hs | 10 ++++++----
src/Haddock/Interface/Create.hs | 1 -
src/Haddock/Interface/Rename.hs | 16 +++++++++-------
5 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/src/Haddock/Backends/LaTeX.hs b/src/Haddock/Backends/LaTeX.hs
index d05795f..ed1179e 100644
--- a/src/Haddock/Backends/LaTeX.hs
+++ b/src/Haddock/Backends/LaTeX.hs
@@ -323,7 +323,7 @@ ppFor _ _ _ _ =
-- we skip type patterns for now
ppTySyn :: SrcSpan -> DocForDecl DocName -> TyClDecl DocName -> Bool -> LaTeX
-ppTySyn loc doc (TySynonym (L _ name) _ ltyvars _ ltype) unicode
+ppTySyn loc doc (TySynonym (L _ name) _ ltyvars _ ltype _) unicode
= ppTypeOrFunSig loc [name] (unLoc ltype) doc (full, hdr, char '=') unicode
where
hdr = hsep (keyword "type" : ppDocBinder name : ppTyVars ltyvars)
diff --git a/src/Haddock/Backends/Xhtml/Decl.hs b/src/Haddock/Backends/Xhtml/Decl.hs
index c3e284b..f29c478 100644
--- a/src/Haddock/Backends/Xhtml/Decl.hs
+++ b/src/Haddock/Backends/Xhtml/Decl.hs
@@ -121,7 +121,7 @@ ppFor _ _ _ _ _ _ _ = error "ppFor"
-- we skip type patterns for now
ppTySyn :: Bool -> LinksInfo -> SrcSpan -> DocForDecl DocName -> TyClDecl DocName -> Bool
-> Qualification -> Html
-ppTySyn summary links loc doc (TySynonym (L _ name) _ ltyvars _ ltype) unicode qual
+ppTySyn summary links loc doc (TySynonym (L _ name) _ ltyvars _ ltype _) unicode qual
= ppTypeOrFunSig summary links loc [name] (unLoc ltype) doc
(full, hdr, spaceHtml +++ equals) unicode qual
where
@@ -163,7 +163,7 @@ ppTyFamHeader summary associated decl unicode qual =
ppTyClBinderWithVars summary decl <+>
- case tcdKind decl of
+ case tcdKindSig decl of
Just kind -> dcolon unicode <+> ppLKind unicode qual kind
Nothing -> noHtml
diff --git a/src/Haddock/Convert.hs b/src/Haddock/Convert.hs
index be5752d..1873d99 100644
--- a/src/Haddock/Convert.hs
+++ b/src/Haddock/Convert.hs
@@ -86,7 +86,7 @@ synifyAxiom (CoAxiom { co_ax_tvs = tvs, co_ax_lhs = lhs, co_ax_rhs = rhs })
tyvars = synifyTyVars tvs
typats = map (synifyType WithinType) args
hs_rhs_ty = synifyType WithinType rhs
- in TySynonym name Nothing tyvars (Just typats) hs_rhs_ty
+ in TySynonym name Nothing tyvars (Just typats) hs_rhs_ty placeHolderNames
| otherwise
= error "synifyAxiom"
@@ -103,7 +103,9 @@ synifyTyCon tc
-- tyConTyVars doesn't work on fun/prim, but we can make them up:
(zipWith
(\fakeTyVar realKind -> noLoc $
- KindedTyVar (getName fakeTyVar) (synifyKind realKind) placeHolderKind)
+ KindedTyVar (getName fakeTyVar)
+ (HsBSig (synifyKind realKind) placeHolderBndrs)
+ placeHolderKind)
alphaTyVars --a, b, c... which are unfortunately all kind *
(fst . splitKindFunTys $ tyConKind tc)
)
@@ -164,7 +166,7 @@ synifyTyCon tc
alg_deriv = Nothing
syn_type = synifyType WithinType (synTyConType tc)
in if isSynTyCon tc
- then TySynonym name Nothing tyvars typats syn_type
+ then TySynonym name Nothing tyvars typats syn_type placeHolderNames
else TyData alg_nd alg_ctx name Nothing tyvars typats (fmap synifyKind alg_kindSig) alg_cons alg_deriv
@@ -239,7 +241,7 @@ synifyTyVars = map synifyTyVar
name = getName tv
in if isLiftedTypeKind kind
then UserTyVar name placeHolderKind
- else KindedTyVar name (synifyKind kind) placeHolderKind
+ else KindedTyVar name (HsBSig (synifyKind kind) placeHolderBndrs) placeHolderKind
--states of what to do with foralls:
diff --git a/src/Haddock/Interface/Create.hs b/src/Haddock/Interface/Create.hs
index 7e9b6a2..00f1319 100644
--- a/src/Haddock/Interface/Create.hs
+++ b/src/Haddock/Interface/Create.hs
@@ -159,7 +159,6 @@ parseOption other = tell ["Unrecognised option: " ++ other] >> return Nothing
type Maps = (DocMap Name, ArgMap Name, SubMap, DeclMap)
-
mkMaps :: DynFlags -> GlobalRdrEnv -> [ClsInst] -> [Name] -> [(LHsDecl Name, [HsDocString])] -> ErrMsgM Maps
mkMaps dflags gre instances exports decls = do
maps <- mapM f decls
diff --git a/src/Haddock/Interface/Rename.hs b/src/Haddock/Interface/Rename.hs
index 4c84080..5bc0535 100644
--- a/src/Haddock/Interface/Rename.hs
+++ b/src/Haddock/Interface/Rename.hs
@@ -260,11 +260,13 @@ renameType t = case t of
renameLTyVarBndr :: LHsTyVarBndr Name -> RnM (LHsTyVarBndr DocName)
-renameLTyVarBndr (L loc tv) = do
- name' <- rename (hsTyVarName tv)
- tyvar' <- replaceTyVarName tv name' renameLKind
- return $ L loc tyvar'
-
+renameLTyVarBndr (L loc (UserTyVar n tck))
+ = do { n' <- rename n
+ ; return (L loc (UserTyVar n' tck)) }
+renameLTyVarBndr (L loc (KindedTyVar n (HsBSig k fvs) tck))
+ = do { n' <- rename n
+ ; k' <- renameLKind k
+ ; return (L loc (KindedTyVar n' (HsBSig k' fvs) tck)) }
renameLContext :: Located [LHsType Name] -> RnM (Located [LHsType DocName])
renameLContext (L loc context) = do
@@ -330,12 +332,12 @@ renameTyClD d = case d of
-- I don't think we need the derivings, so we return Nothing
return (TyData x lcontext' lname' cType ltyvars' typats' k' cons' Nothing)
- TySynonym lname cType ltyvars typats ltype -> do
+ TySynonym lname cType ltyvars typats ltype fvs -> do
lname' <- renameL lname
ltyvars' <- mapM renameLTyVarBndr ltyvars
ltype' <- renameLType ltype
typats' <- mapM (mapM renameLType) typats
- return (TySynonym lname' cType ltyvars' typats' ltype')
+ return (TySynonym lname' cType ltyvars' typats' ltype' fvs)
ClassDecl lcontext lname ltyvars lfundeps lsigs _ ats at_defs _ -> do
lcontext' <- renameLContext lcontext
More information about the Cvs-ghc
mailing list