summaryrefslogtreecommitdiff
path: root/compiler/parser/HaddockUtils.hs
diff options
context:
space:
mode:
authorAlan Zimmerman <alan.zimm@gmail.com>2014-11-20 22:55:09 -0600
committerAustin Seipp <austin@well-typed.com>2014-11-20 22:59:43 -0600
commitd49f1537714d82df16ca1611d996032b428b5581 (patch)
tree5255a07e8a551d2398b8d95c01d4deb6ee8a0cb1 /compiler/parser/HaddockUtils.hs
parent7ed482d909556c1b969185921e27e3fe30c2fe86 (diff)
downloadhaskell-d49f1537714d82df16ca1611d996032b428b5581.tar.gz
AST changes to prepare for API annotations, for #9628
Summary: AST changes to prepare for API annotations Add locations to parts of the AST so that API annotations can then be added. The outline of the whole process is captured here https://ghc.haskell.org/trac/ghc/wiki/GhcAstAnnotations Test Plan: sh ./validate Reviewers: austin, simonpj Reviewed By: simonpj Subscribers: thomie, goldfire, carter Differential Revision: https://phabricator.haskell.org/D426 GHC Trac Issues: #9628 Conflicts: compiler/parser/RdrHsSyn.hs
Diffstat (limited to 'compiler/parser/HaddockUtils.hs')
-rw-r--r--compiler/parser/HaddockUtils.hs8
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/parser/HaddockUtils.hs b/compiler/parser/HaddockUtils.hs
index bf22cd77c1..387cbf8f08 100644
--- a/compiler/parser/HaddockUtils.hs
+++ b/compiler/parser/HaddockUtils.hs
@@ -9,13 +9,15 @@ import Control.Monad
-- -----------------------------------------------------------------------------
-- Adding documentation to record fields (used in parsing).
-addFieldDoc :: ConDeclField a -> Maybe LHsDocString -> ConDeclField a
-addFieldDoc fld doc = fld { cd_fld_doc = cd_fld_doc fld `mplus` doc }
+addFieldDoc :: LConDeclField a -> Maybe LHsDocString -> LConDeclField a
+addFieldDoc (L l fld) doc
+ = L l (fld { cd_fld_doc = cd_fld_doc fld `mplus` doc })
-addFieldDocs :: [ConDeclField a] -> Maybe LHsDocString -> [ConDeclField a]
+addFieldDocs :: [LConDeclField a] -> Maybe LHsDocString -> [LConDeclField a]
addFieldDocs [] _ = []
addFieldDocs (x:xs) doc = addFieldDoc x doc : xs
+
addConDoc :: LConDecl a -> Maybe LHsDocString -> LConDecl a
addConDoc decl Nothing = decl
addConDoc (L p c) doc = L p ( c { con_doc = con_doc c `mplus` doc } )