diff options
author | Alan Zimmerman <alan.zimm@gmail.com> | 2015-11-16 19:43:34 +0200 |
---|---|---|
committer | Alan Zimmerman <alan.zimm@gmail.com> | 2015-11-16 19:43:34 +0200 |
commit | fe95463bdf42651d53d1edc7723491664257cc5a (patch) | |
tree | f43452b6cbe66b0d83e0a9fa65b83a5f05989833 /testsuite/tests/ghc-api | |
parent | 46a03fbec6a02761db079d1746532565f34c340f (diff) | |
download | haskell-fe95463bdf42651d53d1edc7723491664257cc5a.tar.gz |
ApiAnnotations: Add SourceText for unicode tokens
Summary:
At the moment there is no way to tell if a given token used its unicode
variant or its normal one, except to look at the length of the token.
This fails for the unicode '*'.
Expose the original source text for unicode variants so that API
Annotations can capture them specifically.
Test Plan: ./validate
Reviewers: mpickering, austin, bgamari
Reviewed By: bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D1473
GHC Trac Issues: #11018
Diffstat (limited to 'testsuite/tests/ghc-api')
13 files changed, 321 insertions, 4 deletions
diff --git a/testsuite/tests/ghc-api/annotations-literals/literals.stdout b/testsuite/tests/ghc-api/annotations-literals/literals.stdout index ff4f63f183..12a0f4e35e 100644 --- a/testsuite/tests/ghc-api/annotations-literals/literals.stdout +++ b/testsuite/tests/ghc-api/annotations-literals/literals.stdout @@ -14,7 +14,7 @@ (LiteralsTest.hs:4:3,ITvarid "y",[y]), -(LiteralsTest.hs:4:5-6,ITdcolon,[::]), +(LiteralsTest.hs:4:5-6,ITdcolon NormalSyntax,[::]), (LiteralsTest.hs:4:8-10,ITconid "Int",[Int]), @@ -38,7 +38,7 @@ (LiteralsTest.hs:8:1,ITvarid "s",[s]), -(LiteralsTest.hs:8:3-4,ITdcolon,[::]), +(LiteralsTest.hs:8:3-4,ITdcolon NormalSyntax,[::]), (LiteralsTest.hs:8:6-11,ITconid "String",[String]), @@ -54,7 +54,7 @@ (LiteralsTest.hs:11:1,ITvarid "c",[c]), -(LiteralsTest.hs:11:3-4,ITdcolon,[::]), +(LiteralsTest.hs:11:3-4,ITdcolon NormalSyntax,[::]), (LiteralsTest.hs:11:6-9,ITconid "Char",[Char]), @@ -70,7 +70,7 @@ (LiteralsTest.hs:14:1,ITvarid "d",[d]), -(LiteralsTest.hs:14:3-4,ITdcolon,[::]), +(LiteralsTest.hs:14:3-4,ITdcolon NormalSyntax,[::]), (LiteralsTest.hs:14:6-11,ITconid "Double",[Double]), diff --git a/testsuite/tests/ghc-api/annotations/Makefile b/testsuite/tests/ghc-api/annotations/Makefile index 45a5297c32..631e7e3c1e 100644 --- a/testsuite/tests/ghc-api/annotations/Makefile +++ b/testsuite/tests/ghc-api/annotations/Makefile @@ -102,3 +102,7 @@ T10313: rm -f stringSource.o stringSource.hi '$(TEST_HC)' $(TEST_HC_OPTS) --make -v0 -package ghc stringSource ./stringSource "`'$(TEST_HC)' $(TEST_HC_OPTS) --print-libdir | tr -d '\r'`" Test10313 + +.PHONY: T11018 +T11018: + $(CHECK_API_ANNOTATIONS) "`'$(TEST_HC)' $(TEST_HC_OPTS) --print-libdir | tr -d '\r'`" Test11018 diff --git a/testsuite/tests/ghc-api/annotations/T10307.stdout b/testsuite/tests/ghc-api/annotations/T10307.stdout index 48cbca6cd0..26a255dca9 100644 --- a/testsuite/tests/ghc-api/annotations/T10307.stdout +++ b/testsuite/tests/ghc-api/annotations/T10307.stdout @@ -12,6 +12,7 @@ ((Test10307.hs:5:3-34,AnnDcolon), [Test10307.hs:5:31-32]), ((Test10307.hs:5:3-34,AnnSemi), [Test10307.hs:6:3]), ((Test10307.hs:5:3-34,AnnType), [Test10307.hs:5:3-6]), +((Test10307.hs:5:34,AnnStar), [Test10307.hs:5:34]), ((Test10307.hs:6:3-34,AnnEqual), [Test10307.hs:6:31]), ((Test10307.hs:6:3-34,AnnType), [Test10307.hs:6:3-6]), ((Test10307.hs:6:8-34,AnnEqual), [Test10307.hs:6:31]), diff --git a/testsuite/tests/ghc-api/annotations/T10312.stdout b/testsuite/tests/ghc-api/annotations/T10312.stdout index 00f25444cc..61fea45a33 100644 --- a/testsuite/tests/ghc-api/annotations/T10312.stdout +++ b/testsuite/tests/ghc-api/annotations/T10312.stdout @@ -33,6 +33,7 @@ ((Test10312.hs:(16,19)-(20,19),AnnVbar), [Test10312.hs:17:19]), ((Test10312.hs:16:21-25,AnnVal), [Test10312.hs:16:23]), ((Test10312.hs:16:21-29,AnnVal), [Test10312.hs:16:27]), +((Test10312.hs:16:27,AnnStar), [Test10312.hs:16:27]), ((Test10312.hs:17:21-32,AnnComma), [Test10312.hs:18:19]), ((Test10312.hs:17:21-32,AnnLarrow), [Test10312.hs:17:23-24]), ((Test10312.hs:17:26-32,AnnCloseS), [Test10312.hs:17:32]), @@ -59,6 +60,7 @@ ((Test10312.hs:(23,20)-(27,20),AnnVbar), [Test10312.hs:24:20]), ((Test10312.hs:23:22-26,AnnVal), [Test10312.hs:23:24]), ((Test10312.hs:23:22-30,AnnVal), [Test10312.hs:23:28]), +((Test10312.hs:23:28,AnnStar), [Test10312.hs:23:28]), ((Test10312.hs:24:22-33,AnnLarrow), [Test10312.hs:24:24-25]), ((Test10312.hs:24:22-33,AnnVbar), [Test10312.hs:25:20]), ((Test10312.hs:24:27-33,AnnCloseS), [Test10312.hs:24:33]), diff --git a/testsuite/tests/ghc-api/annotations/T10357.stdout b/testsuite/tests/ghc-api/annotations/T10357.stdout index 15d5139be5..cbbb84e2ee 100644 --- a/testsuite/tests/ghc-api/annotations/T10357.stdout +++ b/testsuite/tests/ghc-api/annotations/T10357.stdout @@ -31,6 +31,7 @@ ((Test10357.hs:7:28,AnnComma), [Test10357.hs:7:29]), ((Test10357.hs:7:31-36,AnnVal), [Test10357.hs:7:33]), ((Test10357.hs:7:31-40,AnnVal), [Test10357.hs:7:38]), +((Test10357.hs:7:33,AnnStar), [Test10357.hs:7:33]), ((Test10357.hs:7:43-52,AnnBackquote), [Test10357.hs:7:43, Test10357.hs:7:52]), ((Test10357.hs:7:43-52,AnnVal), [Test10357.hs:7:44-51]), ((Test10357.hs:8:18-59,AnnCloseP), [Test10357.hs:8:59]), diff --git a/testsuite/tests/ghc-api/annotations/T10358.stdout b/testsuite/tests/ghc-api/annotations/T10358.stdout index ae1ec8587f..2bcbf68c09 100644 --- a/testsuite/tests/ghc-api/annotations/T10358.stdout +++ b/testsuite/tests/ghc-api/annotations/T10358.stdout @@ -15,18 +15,23 @@ ((Test10358.hs:5:7-16,AnnEqual), [Test10358.hs:5:12]), ((Test10358.hs:5:7-16,AnnSemi), [Test10358.hs:5:17]), ((Test10358.hs:5:14-16,AnnVal), [Test10358.hs:5:15]), +((Test10358.hs:5:15,AnnStar), [Test10358.hs:5:15]), ((Test10358.hs:5:19-22,AnnBang), [Test10358.hs:5:19]), ((Test10358.hs:5:19-32,AnnEqual), [Test10358.hs:5:24]), ((Test10358.hs:5:19-32,AnnSemi), [Test10358.hs:6:7]), ((Test10358.hs:5:26-32,AnnVal), [Test10358.hs:5:29]), +((Test10358.hs:5:29,AnnStar), [Test10358.hs:5:29]), ((Test10358.hs:6:7-16,AnnEqual), [Test10358.hs:6:10]), ((Test10358.hs:6:7-16,AnnFunId), [Test10358.hs:6:7-8]), ((Test10358.hs:6:7-16,AnnSemi), [Test10358.hs:7:7]), ((Test10358.hs:6:12-14,AnnVal), [Test10358.hs:6:13]), ((Test10358.hs:6:12-16,AnnVal), [Test10358.hs:6:15]), +((Test10358.hs:6:13,AnnStar), [Test10358.hs:6:13]), +((Test10358.hs:6:15,AnnStar), [Test10358.hs:6:15]), ((Test10358.hs:7:7-17,AnnEqual), [Test10358.hs:7:10]), ((Test10358.hs:7:7-17,AnnFunId), [Test10358.hs:7:7-8]), ((Test10358.hs:7:12-17,AnnVal), [Test10358.hs:7:14]), +((Test10358.hs:7:14,AnnStar), [Test10358.hs:7:14]), ((<no location info>,AnnEofPos), [Test10358.hs:9:1]) ] diff --git a/testsuite/tests/ghc-api/annotations/T11018.stderr b/testsuite/tests/ghc-api/annotations/T11018.stderr new file mode 100644 index 0000000000..c58942f4c7 --- /dev/null +++ b/testsuite/tests/ghc-api/annotations/T11018.stderr @@ -0,0 +1,40 @@ + +Test11018.hs:12:26: error: + Illegal kind signature: ‘* -> *’ + Perhaps you intended to use KindSignatures + In the data type declaration for ‘Recorder’ + +Test11018.hs:14:23: error: + Not in scope: type constructor or class ‘FinalizerHandle’ + +Test11018.hs:17:6: error: + Not in scope: type constructor or class ‘Arrow’ + +Test11018.hs:20:7: error: + Not in scope: type constructor or class ‘Arrow’ + +Test11018.hs:23:6: error: + Not in scope: type constructor or class ‘ArrowApply’ + +Test11018.hs:26:7: error: + Not in scope: type constructor or class ‘ArrowApply’ + +Test11018.hs:37:27: error: + Illegal kind signature: ‘* -> *’ + Perhaps you intended to use KindSignatures + In the data type declaration for ‘RecorderU’ + +Test11018.hs:39:23: error: + Not in scope: type constructor or class ‘FinalizerHandle’ + +Test11018.hs:42:7: error: + Not in scope: type constructor or class ‘Arrow’ + +Test11018.hs:45:8: error: + Not in scope: type constructor or class ‘Arrow’ + +Test11018.hs:48:7: error: + Not in scope: type constructor or class ‘ArrowApply’ + +Test11018.hs:51:8: error: + Not in scope: type constructor or class ‘ArrowApply’ diff --git a/testsuite/tests/ghc-api/annotations/T11018.stdout b/testsuite/tests/ghc-api/annotations/T11018.stdout new file mode 100644 index 0000000000..d05c13f213 --- /dev/null +++ b/testsuite/tests/ghc-api/annotations/T11018.stdout @@ -0,0 +1,203 @@ +---Problems (should be empty list)--- +[] +---Annotations----------------------- +-- SrcSpan the annotation is attached to, AnnKeywordId, +-- list of locations the keyword item appears in +[ +((Test11018.hs:1:1,AnnModule), [Test11018.hs:4:1-6]), +((Test11018.hs:1:1,AnnWhere), [Test11018.hs:4:18-22]), +((Test11018.hs:6:1-36,AnnDcolon), [Test11018.hs:6:12-13]), +((Test11018.hs:6:1-36,AnnSemi), [Test11018.hs:7:1]), +((Test11018.hs:6:15-36,AnnDot), [Test11018.hs:6:24]), +((Test11018.hs:6:15-36,AnnForall), [Test11018.hs:6:15-20]), +((Test11018.hs:6:26-36,AnnRarrow), [Test11018.hs:6:28-29]), +((Test11018.hs:(7,1)-(9,10),AnnEqual), [Test11018.hs:7:14]), +((Test11018.hs:(7,1)-(9,10),AnnFunId), [Test11018.hs:7:1-10]), +((Test11018.hs:(7,1)-(9,10),AnnSemi), [Test11018.hs:12:1]), +((Test11018.hs:(7,16)-(9,10),AnnDo), [Test11018.hs:7:16-17]), +((Test11018.hs:8:3-15,AnnLarrow), [Test11018.hs:8:5-6]), +((Test11018.hs:8:3-15,AnnSemi), [Test11018.hs:9:3]), +((Test11018.hs:(12,1)-(15,7),AnnData), [Test11018.hs:12:1-4]), +((Test11018.hs:(12,1)-(15,7),AnnEqual), [Test11018.hs:13:5]), +((Test11018.hs:(12,1)-(15,7),AnnSemi), [Test11018.hs:17:1]), +((Test11018.hs:12:21-32,AnnCloseP), [Test11018.hs:12:32]), +((Test11018.hs:12:21-32,AnnDcolonU), [Test11018.hs:12:24]), +((Test11018.hs:12:21-32,AnnOpenP), [Test11018.hs:12:21]), +((Test11018.hs:12:26,AnnStar), [Test11018.hs:12:26]), +((Test11018.hs:12:26-31,AnnRarrow), [Test11018.hs:12:28-29]), +((Test11018.hs:12:31,AnnStar), [Test11018.hs:12:31]), +((Test11018.hs:(13,16)-(15,7),AnnCloseC), [Test11018.hs:15:7]), +((Test11018.hs:(13,16)-(15,7),AnnOpenC), [Test11018.hs:13:16]), +((Test11018.hs:14:9-40,AnnDcolon), [Test11018.hs:14:18-19]), +((Test11018.hs:14:21-40,AnnBang), [Test11018.hs:14:21]), +((Test11018.hs:14:22-40,AnnCloseP), [Test11018.hs:14:40]), +((Test11018.hs:14:22-40,AnnOpenP), [Test11018.hs:14:22]), +((Test11018.hs:17:1-35,AnnDcolon), [Test11018.hs:17:3-4]), +((Test11018.hs:17:1-35,AnnSemi), [Test11018.hs:18:1]), +((Test11018.hs:17:6-12,AnnDarrow), [Test11018.hs:17:14-15]), +((Test11018.hs:17:19-31,AnnCloseP), [Test11018.hs:17:31]), +((Test11018.hs:17:19-31,AnnOpenP), [Test11018.hs:17:19]), +((Test11018.hs:17:20-22,AnnComma), [Test11018.hs:17:23]), +((Test11018.hs:17:24-26,AnnComma), [Test11018.hs:17:27]), +((Test11018.hs:18:1-34,AnnEqual), [Test11018.hs:18:3]), +((Test11018.hs:18:1-34,AnnFunId), [Test11018.hs:18:1]), +((Test11018.hs:18:1-34,AnnSemi), [Test11018.hs:20:1]), +((Test11018.hs:18:5-34,AnnProc), [Test11018.hs:18:5-8]), +((Test11018.hs:18:5-34,AnnRarrow), [Test11018.hs:18:18-19]), +((Test11018.hs:18:10-16,AnnCloseP), [Test11018.hs:18:16]), +((Test11018.hs:18:10-16,AnnOpenP), [Test11018.hs:18:10]), +((Test11018.hs:18:11,AnnComma), [Test11018.hs:18:12]), +((Test11018.hs:18:13,AnnComma), [Test11018.hs:18:14]), +((Test11018.hs:18:21-34,Annlarrowtail), [Test11018.hs:18:29-30]), +((Test11018.hs:18:32-34,AnnVal), [Test11018.hs:18:33]), +((Test11018.hs:20:1-36,AnnDcolon), [Test11018.hs:20:4-5]), +((Test11018.hs:20:1-36,AnnSemi), [Test11018.hs:21:1]), +((Test11018.hs:20:7-13,AnnDarrow), [Test11018.hs:20:15-16]), +((Test11018.hs:20:20-32,AnnCloseP), [Test11018.hs:20:32]), +((Test11018.hs:20:20-32,AnnOpenP), [Test11018.hs:20:20]), +((Test11018.hs:20:21-23,AnnComma), [Test11018.hs:20:24]), +((Test11018.hs:20:25-27,AnnComma), [Test11018.hs:20:28]), +((Test11018.hs:21:1-35,AnnEqual), [Test11018.hs:21:4]), +((Test11018.hs:21:1-35,AnnFunId), [Test11018.hs:21:1-2]), +((Test11018.hs:21:1-35,AnnSemi), [Test11018.hs:23:1]), +((Test11018.hs:21:6-35,AnnProc), [Test11018.hs:21:6-9]), +((Test11018.hs:21:6-35,AnnRarrow), [Test11018.hs:21:19-20]), +((Test11018.hs:21:11-17,AnnCloseP), [Test11018.hs:21:17]), +((Test11018.hs:21:11-17,AnnOpenP), [Test11018.hs:21:11]), +((Test11018.hs:21:12,AnnComma), [Test11018.hs:21:13]), +((Test11018.hs:21:14,AnnComma), [Test11018.hs:21:15]), +((Test11018.hs:21:22-35,Annrarrowtail), [Test11018.hs:21:30-31]), +((Test11018.hs:21:33-35,AnnVal), [Test11018.hs:21:34]), +((Test11018.hs:23:1-49,AnnDcolon), [Test11018.hs:23:3-4]), +((Test11018.hs:23:1-49,AnnSemi), [Test11018.hs:24:1]), +((Test11018.hs:23:6-17,AnnDarrow), [Test11018.hs:23:19-20]), +((Test11018.hs:23:22-49,AnnRarrow), [Test11018.hs:23:26-27]), +((Test11018.hs:23:31-45,AnnCloseP), [Test11018.hs:23:45]), +((Test11018.hs:23:31-45,AnnOpenP), [Test11018.hs:23:31]), +((Test11018.hs:23:32-40,AnnComma), [Test11018.hs:23:41]), +((Test11018.hs:24:1-29,AnnEqual), [Test11018.hs:24:5]), +((Test11018.hs:24:1-29,AnnFunId), [Test11018.hs:24:1]), +((Test11018.hs:24:1-29,AnnSemi), [Test11018.hs:26:1]), +((Test11018.hs:24:7-29,AnnProc), [Test11018.hs:24:7-10]), +((Test11018.hs:24:7-29,AnnRarrow), [Test11018.hs:24:18-19]), +((Test11018.hs:24:12-16,AnnCloseP), [Test11018.hs:24:16]), +((Test11018.hs:24:12-16,AnnOpenP), [Test11018.hs:24:12]), +((Test11018.hs:24:13,AnnComma), [Test11018.hs:24:14]), +((Test11018.hs:24:21-29,AnnLarrowtail), [Test11018.hs:24:23-25]), +((Test11018.hs:24:27-29,AnnVal), [Test11018.hs:24:28]), +((Test11018.hs:26:1-50,AnnDcolon), [Test11018.hs:26:4-5]), +((Test11018.hs:26:1-50,AnnSemi), [Test11018.hs:27:1]), +((Test11018.hs:26:7-18,AnnDarrow), [Test11018.hs:26:20-21]), +((Test11018.hs:26:23-50,AnnRarrow), [Test11018.hs:26:27-28]), +((Test11018.hs:26:32-46,AnnCloseP), [Test11018.hs:26:46]), +((Test11018.hs:26:32-46,AnnOpenP), [Test11018.hs:26:32]), +((Test11018.hs:26:33-41,AnnComma), [Test11018.hs:26:42]), +((Test11018.hs:27:1-30,AnnEqual), [Test11018.hs:27:6]), +((Test11018.hs:27:1-30,AnnFunId), [Test11018.hs:27:1-2]), +((Test11018.hs:27:1-30,AnnSemi), [Test11018.hs:31:1]), +((Test11018.hs:27:8-30,AnnProc), [Test11018.hs:27:8-11]), +((Test11018.hs:27:8-30,AnnRarrow), [Test11018.hs:27:19-20]), +((Test11018.hs:27:13-17,AnnCloseP), [Test11018.hs:27:17]), +((Test11018.hs:27:13-17,AnnOpenP), [Test11018.hs:27:13]), +((Test11018.hs:27:14,AnnComma), [Test11018.hs:27:15]), +((Test11018.hs:27:22-30,AnnRarrowtail), [Test11018.hs:27:24-26]), +((Test11018.hs:27:28-30,AnnVal), [Test11018.hs:27:29]), +((Test11018.hs:31:1-26,AnnDcolonU), [Test11018.hs:31:9]), +((Test11018.hs:31:1-26,AnnSemi), [Test11018.hs:32:1]), +((Test11018.hs:31:11-26,AnnDot), [Test11018.hs:31:15]), +((Test11018.hs:31:11-26,AnnForallU), [Test11018.hs:31:11]), +((Test11018.hs:31:17-26,AnnRarrowU), [Test11018.hs:31:19]), +((Test11018.hs:(32,1)-(34,10),AnnEqual), [Test11018.hs:32:11]), +((Test11018.hs:(32,1)-(34,10),AnnFunId), [Test11018.hs:32:1-7]), +((Test11018.hs:(32,1)-(34,10),AnnSemi), [Test11018.hs:37:1]), +((Test11018.hs:(32,13)-(34,10),AnnDo), [Test11018.hs:32:13-14]), +((Test11018.hs:33:3-14,AnnLarrowU), [Test11018.hs:33:5]), +((Test11018.hs:33:3-14,AnnSemi), [Test11018.hs:34:3]), +((Test11018.hs:(37,1)-(40,7),AnnData), [Test11018.hs:37:1-4]), +((Test11018.hs:(37,1)-(40,7),AnnEqual), [Test11018.hs:38:5]), +((Test11018.hs:(37,1)-(40,7),AnnSemi), [Test11018.hs:42:1]), +((Test11018.hs:37:22-32,AnnCloseP), [Test11018.hs:37:32]), +((Test11018.hs:37:22-32,AnnDcolonU), [Test11018.hs:37:25]), +((Test11018.hs:37:22-32,AnnOpenP), [Test11018.hs:37:22]), +((Test11018.hs:37:27,AnnStarU), [Test11018.hs:37:27]), +((Test11018.hs:37:27-31,AnnRarrowU), [Test11018.hs:37:29]), +((Test11018.hs:37:31,AnnStarU), [Test11018.hs:37:31]), +((Test11018.hs:(38,17)-(40,7),AnnCloseC), [Test11018.hs:40:7]), +((Test11018.hs:(38,17)-(40,7),AnnOpenC), [Test11018.hs:38:17]), +((Test11018.hs:39:9-40,AnnDcolonU), [Test11018.hs:39:19]), +((Test11018.hs:39:21-40,AnnBang), [Test11018.hs:39:21]), +((Test11018.hs:39:22-40,AnnCloseP), [Test11018.hs:39:40]), +((Test11018.hs:39:22-40,AnnOpenP), [Test11018.hs:39:22]), +((Test11018.hs:42:1-36,AnnDcolon), [Test11018.hs:42:4-5]), +((Test11018.hs:42:1-36,AnnSemi), [Test11018.hs:43:1]), +((Test11018.hs:42:7-13,AnnDarrowU), [Test11018.hs:42:16]), +((Test11018.hs:42:20-32,AnnCloseP), [Test11018.hs:42:32]), +((Test11018.hs:42:20-32,AnnOpenP), [Test11018.hs:42:20]), +((Test11018.hs:42:21-23,AnnComma), [Test11018.hs:42:24]), +((Test11018.hs:42:25-27,AnnComma), [Test11018.hs:42:28]), +((Test11018.hs:43:1-34,AnnEqual), [Test11018.hs:43:4]), +((Test11018.hs:43:1-34,AnnFunId), [Test11018.hs:43:1-2]), +((Test11018.hs:43:1-34,AnnSemi), [Test11018.hs:45:1]), +((Test11018.hs:43:6-34,AnnProc), [Test11018.hs:43:6-9]), +((Test11018.hs:43:6-34,AnnRarrow), [Test11018.hs:43:19-20]), +((Test11018.hs:43:11-17,AnnCloseP), [Test11018.hs:43:17]), +((Test11018.hs:43:11-17,AnnOpenP), [Test11018.hs:43:11]), +((Test11018.hs:43:12,AnnComma), [Test11018.hs:43:13]), +((Test11018.hs:43:14,AnnComma), [Test11018.hs:43:15]), +((Test11018.hs:43:22-34,AnnLarrowtailU), [Test11018.hs:43:30]), +((Test11018.hs:43:32-34,AnnVal), [Test11018.hs:43:33]), +((Test11018.hs:45:1-36,AnnDcolon), [Test11018.hs:45:5-6]), +((Test11018.hs:45:1-36,AnnSemi), [Test11018.hs:46:1]), +((Test11018.hs:45:8-14,AnnDarrowU), [Test11018.hs:45:16]), +((Test11018.hs:45:20-32,AnnCloseP), [Test11018.hs:45:32]), +((Test11018.hs:45:20-32,AnnOpenP), [Test11018.hs:45:20]), +((Test11018.hs:45:21-23,AnnComma), [Test11018.hs:45:24]), +((Test11018.hs:45:25-27,AnnComma), [Test11018.hs:45:28]), +((Test11018.hs:46:1-35,AnnEqual), [Test11018.hs:46:5]), +((Test11018.hs:46:1-35,AnnFunId), [Test11018.hs:46:1-3]), +((Test11018.hs:46:1-35,AnnSemi), [Test11018.hs:48:1]), +((Test11018.hs:46:7-35,AnnProc), [Test11018.hs:46:7-10]), +((Test11018.hs:46:7-35,AnnRarrow), [Test11018.hs:46:20-21]), +((Test11018.hs:46:12-18,AnnCloseP), [Test11018.hs:46:18]), +((Test11018.hs:46:12-18,AnnOpenP), [Test11018.hs:46:12]), +((Test11018.hs:46:13,AnnComma), [Test11018.hs:46:14]), +((Test11018.hs:46:15,AnnComma), [Test11018.hs:46:16]), +((Test11018.hs:46:23-35,AnnrarrowtailU), [Test11018.hs:46:31]), +((Test11018.hs:46:33-35,AnnVal), [Test11018.hs:46:34]), +((Test11018.hs:48:1-49,AnnDcolon), [Test11018.hs:48:4-5]), +((Test11018.hs:48:1-49,AnnSemi), [Test11018.hs:49:1]), +((Test11018.hs:48:7-18,AnnDarrowU), [Test11018.hs:48:20]), +((Test11018.hs:48:22-49,AnnRarrow), [Test11018.hs:48:26-27]), +((Test11018.hs:48:31-45,AnnCloseP), [Test11018.hs:48:45]), +((Test11018.hs:48:31-45,AnnOpenP), [Test11018.hs:48:31]), +((Test11018.hs:48:32-40,AnnComma), [Test11018.hs:48:41]), +((Test11018.hs:49:1-28,AnnEqual), [Test11018.hs:49:6]), +((Test11018.hs:49:1-28,AnnFunId), [Test11018.hs:49:1-2]), +((Test11018.hs:49:1-28,AnnSemi), [Test11018.hs:51:1]), +((Test11018.hs:49:8-28,AnnProc), [Test11018.hs:49:8-11]), +((Test11018.hs:49:8-28,AnnRarrow), [Test11018.hs:49:19-20]), +((Test11018.hs:49:13-17,AnnCloseP), [Test11018.hs:49:17]), +((Test11018.hs:49:13-17,AnnOpenP), [Test11018.hs:49:13]), +((Test11018.hs:49:14,AnnComma), [Test11018.hs:49:15]), +((Test11018.hs:49:22-28,AnnLarrowtailU), [Test11018.hs:49:24]), +((Test11018.hs:49:26-28,AnnVal), [Test11018.hs:49:27]), +((Test11018.hs:51:1-50,AnnDcolon), [Test11018.hs:51:5-6]), +((Test11018.hs:51:1-50,AnnSemi), [Test11018.hs:52:1]), +((Test11018.hs:51:8-19,AnnDarrowU), [Test11018.hs:51:21]), +((Test11018.hs:51:23-50,AnnRarrow), [Test11018.hs:51:27-28]), +((Test11018.hs:51:32-46,AnnCloseP), [Test11018.hs:51:46]), +((Test11018.hs:51:32-46,AnnOpenP), [Test11018.hs:51:32]), +((Test11018.hs:51:33-41,AnnComma), [Test11018.hs:51:42]), +((Test11018.hs:52:1-29,AnnEqual), [Test11018.hs:52:7]), +((Test11018.hs:52:1-29,AnnFunId), [Test11018.hs:52:1-3]), +((Test11018.hs:52:1-29,AnnSemi), [Test11018.hs:53:1]), +((Test11018.hs:52:9-29,AnnProc), [Test11018.hs:52:9-12]), +((Test11018.hs:52:9-29,AnnRarrow), [Test11018.hs:52:20-21]), +((Test11018.hs:52:14-18,AnnCloseP), [Test11018.hs:52:18]), +((Test11018.hs:52:14-18,AnnOpenP), [Test11018.hs:52:14]), +((Test11018.hs:52:15,AnnComma), [Test11018.hs:52:16]), +((Test11018.hs:52:23-29,AnnRarrowtailU), [Test11018.hs:52:25]), +((Test11018.hs:52:27-29,AnnVal), [Test11018.hs:52:28]), +((<no location info>,AnnEofPos), [Test11018.hs:53:1]) +] + diff --git a/testsuite/tests/ghc-api/annotations/Test11018.hs b/testsuite/tests/ghc-api/annotations/Test11018.hs new file mode 100644 index 0000000000..e1d020540e --- /dev/null +++ b/testsuite/tests/ghc-api/annotations/Test11018.hs @@ -0,0 +1,52 @@ +{-# LANGUAGE Arrows #-} +{-# LANGUAGE RankNTypes #-} +{-# LANGUAGE UnicodeSyntax #-} +module Test11018 where + +nonUnicode :: forall a . a -> IO Int +nonUnicode _ = do + x <- readChar + return 4 + +-- ^ An opaque ESD handle for recording data from the soundcard via ESD. +data Recorder fr ch (r ∷ * -> *) + = Recorder { + reCloseH :: !(FinalizerHandle r) + } + +f :: Arrow a => a (Int,Int,Int) Int +f = proc (x,y,z) -> returnA -< x+y + +f2 :: Arrow a => a (Int,Int,Int) Int +f2 = proc (x,y,z) -> returnA >- x+y + +g :: ArrowApply a => Int -> a (a Int Int,Int) Int +g y = proc (x,z) -> x -<< 2+y + +g2 :: ArrowApply a => Int -> a (a Int Int,Int) Int +g2 y = proc (x,z) -> x >>- 2+y + +-- ------------------------------------- + +unicode ∷ ∀ a . a → IO Int +unicode _ = do + x ← readChar + return 4 + +-- ^ An opaque ESD handle for recording data from the soundcard via ESD. +data RecorderU fr ch (r ∷ ★ → ★) + = RecorderU { + reCloseHU ∷ !(FinalizerHandle r) + } + +fU :: Arrow a ⇒ a (Int,Int,Int) Int +fU = proc (x,y,z) -> returnA ⤙ x+y + +f2U :: Arrow a ⇒ a (Int,Int,Int) Int +f2U = proc (x,y,z) -> returnA ⤚ x+y + +gU :: ArrowApply a ⇒ Int -> a (a Int Int,Int) Int +gU y = proc (x,z) -> x ⤛ 2+y + +g2U :: ArrowApply a ⇒ Int -> a (a Int Int,Int) Int +g2U y = proc (x,z) -> x ⤜ 2+y diff --git a/testsuite/tests/ghc-api/annotations/all.T b/testsuite/tests/ghc-api/annotations/all.T index 2d605c45f8..591f5bf2e7 100644 --- a/testsuite/tests/ghc-api/annotations/all.T +++ b/testsuite/tests/ghc-api/annotations/all.T @@ -18,4 +18,5 @@ test('T10354', normal, run_command, ['$MAKE -s --no-print-directory T10354' test('T10396', normal, run_command, ['$MAKE -s --no-print-directory T10396']) test('T10399', normal, run_command, ['$MAKE -s --no-print-directory T10399']) test('T10313', normal, run_command, ['$MAKE -s --no-print-directory T10313']) +test('T11018', normal, run_command, ['$MAKE -s --no-print-directory T11018']) test('bundle-export', normal, run_command, ['$MAKE -s --no-print-directory bundle-export']) diff --git a/testsuite/tests/ghc-api/annotations/exampleTest.stdout b/testsuite/tests/ghc-api/annotations/exampleTest.stdout index c50df4848e..9ae9f2300a 100644 --- a/testsuite/tests/ghc-api/annotations/exampleTest.stdout +++ b/testsuite/tests/ghc-api/annotations/exampleTest.stdout @@ -65,7 +65,9 @@ ((AnnotationTuple.hs:18:1-28,AnnDcolon), [AnnotationTuple.hs:18:20-21]), ((AnnotationTuple.hs:18:1-28,AnnFamily), [AnnotationTuple.hs:18:6-11]), ((AnnotationTuple.hs:18:1-28,AnnSemi), [AnnotationTuple.hs:19:1]), +((AnnotationTuple.hs:18:23,AnnStar), [AnnotationTuple.hs:18:23]), ((AnnotationTuple.hs:18:23-28,AnnRarrow), [AnnotationTuple.hs:18:25-26]), +((AnnotationTuple.hs:18:28,AnnStar), [AnnotationTuple.hs:18:28]), ((AnnotationTuple.hs:(20,1)-(24,14),AnnFunId), [AnnotationTuple.hs:20:1-5]), ((AnnotationTuple.hs:(20,1)-(24,14),AnnSemi), [AnnotationTuple.hs:25:1]), ((AnnotationTuple.hs:(21,7)-(24,14),AnnEqual), [AnnotationTuple.hs:24:7]), diff --git a/testsuite/tests/ghc-api/annotations/listcomps.stdout b/testsuite/tests/ghc-api/annotations/listcomps.stdout index 1c0b8e5ce4..754c170f39 100644 --- a/testsuite/tests/ghc-api/annotations/listcomps.stdout +++ b/testsuite/tests/ghc-api/annotations/listcomps.stdout @@ -97,6 +97,8 @@ (AK ListComprehensions.hs:18:22-30 AnnVal = [ListComprehensions.hs:18:28]) +(AK ListComprehensions.hs:18:28 AnnStar = [ListComprehensions.hs:18:28]) + (AK ListComprehensions.hs:19:22-33 AnnLarrow = [ListComprehensions.hs:19:24-25]) (AK ListComprehensions.hs:19:22-33 AnnVbar = [ListComprehensions.hs:20:20]) diff --git a/testsuite/tests/ghc-api/annotations/parseTree.stdout b/testsuite/tests/ghc-api/annotations/parseTree.stdout index 7d651aaffb..d3e1a5a7dd 100644 --- a/testsuite/tests/ghc-api/annotations/parseTree.stdout +++ b/testsuite/tests/ghc-api/annotations/parseTree.stdout @@ -132,8 +132,12 @@ (AK AnnotationTuple.hs:18:1-28 AnnSemi = [AnnotationTuple.hs:19:1]) +(AK AnnotationTuple.hs:18:23 AnnStar = [AnnotationTuple.hs:18:23]) + (AK AnnotationTuple.hs:18:23-28 AnnRarrow = [AnnotationTuple.hs:18:25-26]) +(AK AnnotationTuple.hs:18:28 AnnStar = [AnnotationTuple.hs:18:28]) + (AK AnnotationTuple.hs:(20,1)-(24,14) AnnFunId = [AnnotationTuple.hs:20:1-5]) (AK AnnotationTuple.hs:(20,1)-(24,14) AnnSemi = [AnnotationTuple.hs:25:1]) |