diff options
Diffstat (limited to 'compiler/GHC')
| -rw-r--r-- | compiler/GHC/Builtin/PrimOps.hs | 13 | ||||
| -rw-r--r-- | compiler/GHC/Builtin/Utils.hs | 7 | ||||
| -rw-r--r-- | compiler/GHC/Iface/Load.hs | 3 |
3 files changed, 21 insertions, 2 deletions
diff --git a/compiler/GHC/Builtin/PrimOps.hs b/compiler/GHC/Builtin/PrimOps.hs index e85c12a55d..b3861c83aa 100644 --- a/compiler/GHC/Builtin/PrimOps.hs +++ b/compiler/GHC/Builtin/PrimOps.hs @@ -16,7 +16,7 @@ module GHC.Builtin.PrimOps ( primOpOutOfLine, primOpCodeSize, primOpOkForSpeculation, primOpOkForSideEffects, - primOpIsCheap, primOpFixity, + primOpIsCheap, primOpFixity, primOpDocs, getPrimOpResultInfo, isComparisonPrimOp, PrimOpResultInfo(..), @@ -164,6 +164,17 @@ primOpFixity :: PrimOp -> Maybe Fixity {- ************************************************************************ * * +\subsubsection{Docs} +* * +************************************************************************ +-} + +primOpDocs :: PrimOp -> Maybe String +#include "primop-docs.hs-incl" + +{- +************************************************************************ +* * \subsubsection[PrimOp-comparison]{PrimOpInfo basic comparison ops} * * ************************************************************************ diff --git a/compiler/GHC/Builtin/Utils.hs b/compiler/GHC/Builtin/Utils.hs index 0725ee85fa..1c7ede7c64 100644 --- a/compiler/GHC/Builtin/Utils.hs +++ b/compiler/GHC/Builtin/Utils.hs @@ -34,6 +34,7 @@ module GHC.Builtin.Utils ( primOpRules, builtinRules, ghcPrimExports, + ghcPrimDeclDocs, primOpId, -- * Random other things @@ -71,11 +72,13 @@ import GHC.Core.TyCon import GHC.Types.Unique.FM import Util import GHC.Builtin.Types.Literals ( typeNatTyCons ) +import GHC.Hs.Doc import Control.Applicative ((<|>)) import Data.List ( intercalate ) import Data.Array import Data.Maybe +import qualified Data.Map as Map {- ************************************************************************ @@ -256,6 +259,10 @@ ghcPrimExports [ AvailTC n [n] [] | tc <- funTyCon : exposedPrimTyCons, let n = tyConName tc ] +ghcPrimDeclDocs :: DeclDocMap +ghcPrimDeclDocs = DeclDocMap $ Map.fromList $ mapMaybe mkDeclDoc allThePrimOps + where mkDeclDoc po = fmap (\doc -> (idName (primOpId po), mkHsDocString doc)) $ primOpDocs po + {- ************************************************************************ * * diff --git a/compiler/GHC/Iface/Load.hs b/compiler/GHC/Iface/Load.hs index 8fc46734c2..4a0ed966d1 100644 --- a/compiler/GHC/Iface/Load.hs +++ b/compiler/GHC/Iface/Load.hs @@ -1049,7 +1049,8 @@ ghcPrimIface mi_exports = ghcPrimExports, mi_decls = [], mi_fixities = fixities, - mi_final_exts = (mi_final_exts empty_iface){ mi_fix_fn = mkIfaceFixCache fixities } + mi_final_exts = (mi_final_exts empty_iface){ mi_fix_fn = mkIfaceFixCache fixities }, + mi_decl_docs = ghcPrimDeclDocs } where empty_iface = emptyFullModIface gHC_PRIM |
