diff options
author | Edward Z. Yang <ezyang@cs.stanford.edu> | 2015-05-04 16:10:05 -0700 |
---|---|---|
committer | Edward Z. Yang <ezyang@cs.stanford.edu> | 2015-05-11 09:09:22 -0700 |
commit | f16ddcee0c64a92ab911a7841a8cf64e3ac671fd (patch) | |
tree | 3427379f02f5cd3cd53704b5fa35695fd9b5e3aa /testsuite/tests/quotes/TH_repE3.hs | |
parent | ecc3d6be218b1c7a36ee3f2f36c4f3ac4f45c34f (diff) | |
download | haskell-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.hs | 19 |
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:[] |] + |