summaryrefslogtreecommitdiff
path: root/testsuite/tests/th/TH_spliceViewPat
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/th/TH_spliceViewPat')
-rw-r--r--testsuite/tests/th/TH_spliceViewPat/A.hs11
-rw-r--r--testsuite/tests/th/TH_spliceViewPat/Main.hs11
-rw-r--r--testsuite/tests/th/TH_spliceViewPat/TH_spliceViewPat.stdout2
-rw-r--r--testsuite/tests/th/TH_spliceViewPat/test.T11
4 files changed, 35 insertions, 0 deletions
diff --git a/testsuite/tests/th/TH_spliceViewPat/A.hs b/testsuite/tests/th/TH_spliceViewPat/A.hs
new file mode 100644
index 0000000000..0147d2eca2
--- /dev/null
+++ b/testsuite/tests/th/TH_spliceViewPat/A.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE ViewPatterns #-}
+module A where
+
+import Language.Haskell.TH.Quote
+import Language.Haskell.TH
+
+foo :: QuasiQuoter
+foo = QuasiQuoter{quotePat = \s -> viewP [|(*2)|] (varP . mkName $ s)}
+
+bar :: QuasiQuoter
+bar = QuasiQuoter{quotePat = \_ -> [p|((*3) -> fixed_var)|] }
diff --git a/testsuite/tests/th/TH_spliceViewPat/Main.hs b/testsuite/tests/th/TH_spliceViewPat/Main.hs
new file mode 100644
index 0000000000..675ae99bf9
--- /dev/null
+++ b/testsuite/tests/th/TH_spliceViewPat/Main.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE QuasiQuotes, ViewPatterns #-}
+
+module Main where
+
+import A
+
+main = do
+ case 1 of
+ [foo|x|] -> print x
+ case 1 of
+ [bar|<!anything~|] -> print fixed_var
diff --git a/testsuite/tests/th/TH_spliceViewPat/TH_spliceViewPat.stdout b/testsuite/tests/th/TH_spliceViewPat/TH_spliceViewPat.stdout
new file mode 100644
index 0000000000..4792e70f33
--- /dev/null
+++ b/testsuite/tests/th/TH_spliceViewPat/TH_spliceViewPat.stdout
@@ -0,0 +1,2 @@
+2
+3
diff --git a/testsuite/tests/th/TH_spliceViewPat/test.T b/testsuite/tests/th/TH_spliceViewPat/test.T
new file mode 100644
index 0000000000..fa50658a6b
--- /dev/null
+++ b/testsuite/tests/th/TH_spliceViewPat/test.T
@@ -0,0 +1,11 @@
+def f(opts):
+ opts.extra_hc_opts = '-XTemplateHaskell -package template-haskell'
+ if (ghc_with_interpreter == 0):
+ opts.skip = 1
+
+setTestOpts(f)
+setTestOpts(only_compiler_types(['ghc']))
+setTestOpts(only_ways(['normal','ghci']))
+setTestOpts(if_compiler_profiled(skip))
+
+test('TH_spliceViewPat', normal, multimod_compile_and_run, [ 'Main', '' ])