summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Zimmerman <alan.zimm@gmail.com>2020-08-04 23:34:37 +0100
committerAlan Zimmerman <alan.zimm@gmail.com>2020-08-06 13:34:01 +0100
commit40d366d17d358866e3900170ac9b2e7dcc3530be (patch)
treeee8643acbde369cbc17f5fa3fcfbac7bcbc63ff0
parentfbcb886d503dd7aaebc4c40e59615068b3fd0bd7 (diff)
downloadhaskell-wip/az/anns-1.tar.gz
ApiAnnotations; tweaks for ghc-exactprint updatewip/az/anns-1
Remove unused ApiAnns, add one for linear arrow. Include API Annotations for trailing comma in export list.
-rw-r--r--compiler/GHC.hs4
-rw-r--r--compiler/GHC/Parser.y22
-rw-r--r--compiler/GHC/Parser/Annotation.hs5
-rw-r--r--utils/check-api-annotations/Main.hs1
4 files changed, 16 insertions, 16 deletions
diff --git a/compiler/GHC.hs b/compiler/GHC.hs
index 22ce5fac18..834748a2b0 100644
--- a/compiler/GHC.hs
+++ b/compiler/GHC.hs
@@ -248,7 +248,7 @@ module GHC (
srcSpanStartCol, srcSpanEndCol,
-- ** Located
- GenLocated(..), Located,
+ GenLocated(..), Located, RealLocated,
-- *** Constructing Located
noLoc, mkGeneralLocated,
@@ -274,7 +274,7 @@ module GHC (
parser,
-- * API Annotations
- ApiAnns(..),AnnKeywordId(..),AnnotationComment(..),
+ ApiAnns(..),AnnKeywordId(..),AnnotationComment(..), ApiAnnKey,
getAnnotation, getAndRemoveAnnotation,
getAnnotationComments, getAndRemoveAnnotationComments,
unicodeAnn,
diff --git a/compiler/GHC/Parser.y b/compiler/GHC/Parser.y
index 2afed04506..bba6e639d8 100644
--- a/compiler/GHC/Parser.y
+++ b/compiler/GHC/Parser.y
@@ -863,17 +863,17 @@ header_top_importdecls :: { [LImportDecl GhcPs] }
-- The Export List
maybeexports :: { (Maybe (Located [LIE GhcPs])) }
- : '(' exportlist ')' {% amsL (comb2 $1 $>) [mop $1,mcp $3] >>
- return (Just (sLL $1 $> (fromOL $2))) }
+ : '(' exportlist ')' {% amsL (comb2 $1 $>) ([mop $1,mcp $3] ++ (fst $2)) >>
+ return (Just (sLL $1 $> (fromOL $ snd $2))) }
| {- empty -} { Nothing }
-exportlist :: { OrdList (LIE GhcPs) }
- : exportlist1 { $1 }
- | {- empty -} { nilOL }
+exportlist :: { ([AddAnn], OrdList (LIE GhcPs)) }
+ : exportlist1 { ([], $1) }
+ | {- empty -} { ([], nilOL) }
-- trailing comma:
- | exportlist1 ',' { $1 }
- | ',' { nilOL }
+ | exportlist1 ',' { ([mj AnnComma $2], $1) }
+ | ',' { ([mj AnnComma $1], nilOL) }
exportlist1 :: { OrdList (LIE GhcPs) }
: exportlist1 ',' export
@@ -1019,11 +1019,11 @@ maybeimpspec :: { Located (Maybe (Bool, Located [LIE GhcPs])) }
impspec :: { Located (Bool, Located [LIE GhcPs]) }
: '(' exportlist ')' {% ams (sLL $1 $> (False,
- sLL $1 $> $ fromOL $2))
- [mop $1,mcp $3] }
+ sLL $1 $> $ fromOL (snd $2)))
+ ([mop $1,mcp $3] ++ (fst $2)) }
| 'hiding' '(' exportlist ')' {% ams (sLL $1 $> (True,
- sLL $1 $> $ fromOL $3))
- [mj AnnHiding $1,mop $2,mcp $4] }
+ sLL $1 $> $ fromOL (snd $3)))
+ ([mj AnnHiding $1,mop $2,mcp $4] ++ (fst $3)) }
-----------------------------------------------------------------------------
-- Fixity Declarations
diff --git a/compiler/GHC/Parser/Annotation.hs b/compiler/GHC/Parser/Annotation.hs
index 63cb42845d..0db029ba02 100644
--- a/compiler/GHC/Parser/Annotation.hs
+++ b/compiler/GHC/Parser/Annotation.hs
@@ -259,6 +259,8 @@ data AnnKeywordId
| AnnLarrow -- ^ '<-'
| AnnLarrowU -- ^ '<-', unicode variant
| AnnLet
+ | AnnLolly -- ^ '#->'
+ | AnnLollyU -- ^ '#->', unicode variant
| AnnMdo
| AnnMinus -- ^ '-'
| AnnModule
@@ -291,8 +293,6 @@ data AnnKeywordId
| AnnStatic -- ^ 'static'
| AnnStock
| AnnThen
- | AnnThIdSplice -- ^ '$'
- | AnnThIdTySplice -- ^ '$$'
| AnnThTyQuote -- ^ double '''
| AnnTilde -- ^ '~'
| AnnType
@@ -364,6 +364,7 @@ unicodeAnn AnnOpenB = AnnOpenBU
unicodeAnn AnnCloseB = AnnCloseBU
unicodeAnn AnnOpenEQ = AnnOpenEQU
unicodeAnn AnnCloseQ = AnnCloseQU
+unicodeAnn AnnLolly = AnnLollyU
unicodeAnn ann = ann
diff --git a/utils/check-api-annotations/Main.hs b/utils/check-api-annotations/Main.hs
index 366f7c7601..9358359f6d 100644
--- a/utils/check-api-annotations/Main.hs
+++ b/utils/check-api-annotations/Main.hs
@@ -5,7 +5,6 @@ import Data.List
import GHC
import GHC.Driver.Session
import GHC.Utils.Outputable
-import GHC.Parser.Annotation
import GHC.Types.SrcLoc
import System.Environment( getArgs )
import System.Exit