summaryrefslogtreecommitdiff
path: root/compiler/GHC/Hs/Extension.hs
diff options
context:
space:
mode:
authorVladislav Zavialov <vlad.z.4096@gmail.com>2019-11-12 09:22:39 +0300
committerVladislav Zavialov <vlad.z.4096@gmail.com>2019-11-28 15:47:53 +0300
commit6985e0fc4f6fb30c1effd356d87c1a0629aa9cd0 (patch)
tree00eb27d79c8730339e39215c7306caa3ff5fd14e /compiler/GHC/Hs/Extension.hs
parent6c59cc71dc20f26d5a6650b16a82faeae72f2065 (diff)
downloadhaskell-wip/hs-prag.tar.gz
Factor out HsSCC/HsCoreAnn/HsTickPragma into HsPragEwip/hs-prag
This is a refactoring with no user-visible changes (except for GHC API users). Consider the HsExpr constructors that correspond to user-written pragmas: HsSCC representing {-# SCC ... #-} HsCoreAnn representing {-# CORE ... #-} HsTickPragma representing {-# GENERATED ... #-} We can factor them out into a separate datatype, HsPragE. It makes the code a bit tidier, especially in the parser. Before this patch: hpc_annot :: { Located ( (([AddAnn],SourceText),(StringLiteral,(Int,Int),(Int,Int))), ((SourceText,SourceText),(SourceText,SourceText)) ) } After this patch: prag_hpc :: { Located ([AddAnn], HsPragE GhcPs) }
Diffstat (limited to 'compiler/GHC/Hs/Extension.hs')
-rw-r--r--compiler/GHC/Hs/Extension.hs9
1 files changed, 6 insertions, 3 deletions
diff --git a/compiler/GHC/Hs/Extension.hs b/compiler/GHC/Hs/Extension.hs
index 6b1042700a..be0333933a 100644
--- a/compiler/GHC/Hs/Extension.hs
+++ b/compiler/GHC/Hs/Extension.hs
@@ -606,8 +606,6 @@ type family XRecordCon x
type family XRecordUpd x
type family XExprWithTySig x
type family XArithSeq x
-type family XSCC x
-type family XCoreAnn x
type family XBracket x
type family XRnBracketOut x
type family XTcBracketOut x
@@ -616,10 +614,15 @@ type family XProc x
type family XStatic x
type family XTick x
type family XBinTick x
-type family XTickPragma x
+type family XPragE x
type family XWrap x
type family XXExpr x
+type family XSCC x
+type family XCoreAnn x
+type family XTickPragma x
+type family XXPragE x
+
type ForallXExpr (c :: * -> Constraint) (x :: *) =
( c (XVar x)
, c (XUnboundVar x)