summaryrefslogtreecommitdiff
path: root/compiler/GHC/Hs/Instances.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/Instances.hs
parent6c59cc71dc20f26d5a6650b16a82faeae72f2065 (diff)
downloadhaskell-6985e0fc4f6fb30c1effd356d87c1a0629aa9cd0.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/Instances.hs')
-rw-r--r--compiler/GHC/Hs/Instances.hs5
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/GHC/Hs/Instances.hs b/compiler/GHC/Hs/Instances.hs
index b3a33df43c..5f6fae2cb2 100644
--- a/compiler/GHC/Hs/Instances.hs
+++ b/compiler/GHC/Hs/Instances.hs
@@ -247,6 +247,11 @@ deriving instance Data (SyntaxExpr GhcPs)
deriving instance Data (SyntaxExpr GhcRn)
deriving instance Data (SyntaxExpr GhcTc)
+-- deriving instance (DataIdLR p p) => Data (HsPragE p)
+deriving instance Data (HsPragE GhcPs)
+deriving instance Data (HsPragE GhcRn)
+deriving instance Data (HsPragE GhcTc)
+
-- deriving instance (DataIdLR p p) => Data (HsExpr p)
deriving instance Data (HsExpr GhcPs)
deriving instance Data (HsExpr GhcRn)