diff options
author | Vladislav Zavialov <vlad.z.4096@gmail.com> | 2019-11-12 09:22:39 +0300 |
---|---|---|
committer | Vladislav Zavialov <vlad.z.4096@gmail.com> | 2019-11-28 15:47:53 +0300 |
commit | 6985e0fc4f6fb30c1effd356d87c1a0629aa9cd0 (patch) | |
tree | 00eb27d79c8730339e39215c7306caa3ff5fd14e /compiler/GHC/Hs/Instances.hs | |
parent | 6c59cc71dc20f26d5a6650b16a82faeae72f2065 (diff) | |
download | haskell-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.hs | 5 |
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) |