summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/tests/th/TH_invalid_add_top_decl.hs8
-rw-r--r--testsuite/tests/th/TH_invalid_add_top_decl.stderr5
-rw-r--r--testsuite/tests/th/all.T1
3 files changed, 14 insertions, 0 deletions
diff --git a/testsuite/tests/th/TH_invalid_add_top_decl.hs b/testsuite/tests/th/TH_invalid_add_top_decl.hs
new file mode 100644
index 0000000000..b13d873d96
--- /dev/null
+++ b/testsuite/tests/th/TH_invalid_add_top_decl.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE TemplateHaskell #-}
+import Language.Haskell.TH
+import Language.Haskell.TH.Syntax
+
+$(do
+ invalidDecl <- valD (varP (mkName "emptyDo")) (normalB (doE [])) []
+ addTopDecls [invalidDecl]
+ return [])
diff --git a/testsuite/tests/th/TH_invalid_add_top_decl.stderr b/testsuite/tests/th/TH_invalid_add_top_decl.stderr
new file mode 100644
index 0000000000..9124c2d669
--- /dev/null
+++ b/testsuite/tests/th/TH_invalid_add_top_decl.stderr
@@ -0,0 +1,5 @@
+
+TH_invalid_add_top_decl.hs:5:3:
+ Error in a declaration passed to addTopDecls:
+ Empty stmt list in do-block
+ When splicing a TH declaration: emptyDo = do
diff --git a/testsuite/tests/th/all.T b/testsuite/tests/th/all.T
index cd80a6c4fb..0fddd448ea 100644
--- a/testsuite/tests/th/all.T
+++ b/testsuite/tests/th/all.T
@@ -424,3 +424,4 @@ test('T9693', expect_broken(9693), ghci_script, ['T9693.script'])
test('T14471', normal, compile, [''])
test('TH_rebindableAdo', normal, compile, [''])
test('T14627', normal, compile_fail, [''])
+test('TH_invalid_add_top_decl', normal, compile_fail, [''])