summaryrefslogtreecommitdiff
path: root/testsuite/tests/quotes/TH_repE3.hs
diff options
context:
space:
mode:
authorEdward Z. Yang <ezyang@cs.stanford.edu>2015-05-04 16:10:05 -0700
committerEdward Z. Yang <ezyang@cs.stanford.edu>2015-05-11 09:09:22 -0700
commitf16ddcee0c64a92ab911a7841a8cf64e3ac671fd (patch)
tree3427379f02f5cd3cd53704b5fa35695fd9b5e3aa /testsuite/tests/quotes/TH_repE3.hs
parentecc3d6be218b1c7a36ee3f2f36c4f3ac4f45c34f (diff)
downloadhaskell-f16ddcee0c64a92ab911a7841a8cf64e3ac671fd.tar.gz
Support stage 1 Template Haskell (non-quasi) quotes, fixes #10382.
Summary: This commit adds stage 1 support for Template Haskell quoting, e.g. [| ... expr ... |], which is useful for authors of quasiquoter libraries that do not actually need splices. The TemplateHaskell extension now does not unconditionally fail; it only fails if the renamer encounters a splice that it can't run. In order to make sure the referenced data structures are consistent, template-haskell is now a boot library. There are some minor BC changes to template-haskell to make it boot on GHC 7.8. Note for reviewer: big diff changes are simply code being moved out of an ifdef; there was no other substantive change to that code. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: simonpj, austin, goldfire Subscribers: bgamari, thomie Differential Revision: https://phabricator.haskell.org/D876 GHC Trac Issues: #10382
Diffstat (limited to 'testsuite/tests/quotes/TH_repE3.hs')
-rw-r--r--testsuite/tests/quotes/TH_repE3.hs19
1 files changed, 19 insertions, 0 deletions
diff --git a/testsuite/tests/quotes/TH_repE3.hs b/testsuite/tests/quotes/TH_repE3.hs
new file mode 100644
index 0000000000..5f0453c1a7
--- /dev/null
+++ b/testsuite/tests/quotes/TH_repE3.hs
@@ -0,0 +1,19 @@
+-- test the representation of literals and also explicit type annotations
+
+module TH_repE1
+where
+
+import Language.Haskell.TH
+
+emptyListExpr :: ExpQ
+emptyListExpr = [| [] |]
+
+singletonListExpr :: ExpQ
+singletonListExpr = [| [4] |]
+
+listExpr :: ExpQ
+listExpr = [| [4,5,6] |]
+
+consExpr :: ExpQ
+consExpr = [| 4:5:6:[] |]
+