diff --git a/testsuite/tests/ghc-regress/th/T2597a.hs b/testsuite/tests/ghc-regress/th/T2597a.hs new file mode 100644 index 0000000000000000000000000000000000000000..3d8c319b47d1c17633f3e4df9096221a86d4fbf1 --- /dev/null +++ b/testsuite/tests/ghc-regress/th/T2597a.hs @@ -0,0 +1,8 @@ +{-# LANGUAGE TemplateHaskell #-} + +-- Test Trac #2597 (first bug) + +module ShouldCompile where +import T2597a_Lib + +bug = $mkBug diff --git a/testsuite/tests/ghc-regress/th/T2597a_Lib.hs b/testsuite/tests/ghc-regress/th/T2597a_Lib.hs new file mode 100644 index 0000000000000000000000000000000000000000..0e8f794dc6d7b819541cb52e16352835d0d72cad --- /dev/null +++ b/testsuite/tests/ghc-regress/th/T2597a_Lib.hs @@ -0,0 +1,12 @@ +{-# LANGUAGE TemplateHaskell #-} +-- Library module for T2597a + +module T2597a_Lib where +import Language.Haskell.TH + + +mkBug :: ExpQ +mkBug = return $ CompE [BindS (VarP $ mkName "p") (ListE []), NoBindS + (VarE $ mkName "p")] + + diff --git a/testsuite/tests/ghc-regress/th/T2597b.hs b/testsuite/tests/ghc-regress/th/T2597b.hs new file mode 100644 index 0000000000000000000000000000000000000000..2fde00838844b1a54cfa04868b1cc0b8a6d37294 --- /dev/null +++ b/testsuite/tests/ghc-regress/th/T2597b.hs @@ -0,0 +1,9 @@ +{-# LANGUAGE TemplateHaskell #-} + +-- Test Trac #2597 (second bug) + +module ShouldCompile where +import T2597b_Lib + +bug2 = $mkBug2 + diff --git a/testsuite/tests/ghc-regress/th/T2597b.stderr b/testsuite/tests/ghc-regress/th/T2597b.stderr new file mode 100644 index 0000000000000000000000000000000000000000..f263658c8bb5e9ce725e63d312730e41c0fe6241 --- /dev/null +++ b/testsuite/tests/ghc-regress/th/T2597b.stderr @@ -0,0 +1,7 @@ + +T2597b.hs:8:7: + Empty stmt list in do-block + When splicing generated code into the program + When splicing TH expression: DoE [] + In the expression: $mkBug2 + In the definition of `bug2': bug2 = $mkBug2 diff --git a/testsuite/tests/ghc-regress/th/T2597b_Lib.hs b/testsuite/tests/ghc-regress/th/T2597b_Lib.hs new file mode 100644 index 0000000000000000000000000000000000000000..1f70c3923aa4eb8ae6845c3160f647fe5b2a7b13 --- /dev/null +++ b/testsuite/tests/ghc-regress/th/T2597b_Lib.hs @@ -0,0 +1,9 @@ +{-# LANGUAGE TemplateHaskell #-} +-- Library module for T2597b + +module T2597b_Lib where +import Language.Haskell.TH + + +mkBug2 :: ExpQ +mkBug2 = return $ DoE [] diff --git a/testsuite/tests/ghc-regress/th/all.T b/testsuite/tests/ghc-regress/th/all.T index 1c81fa6ee4a2b5b690fa2f2287d7c55b4e0b5c4e..80cb13c547f8e706e628668dfd3e125b31bd28e4 100644 --- a/testsuite/tests/ghc-regress/th/all.T +++ b/testsuite/tests/ghc-regress/th/all.T @@ -66,6 +66,16 @@ test('TH_spliceDecl4', multimod_compile, ['TH_spliceDecl4', '-v0']) +test('T2597a', + extra_clean(['T2597a_Lib.hi', 'T2597a_Lib.o']), + multimod_compile, + ['T2597a', '-v0']) + +test('T2597b', + extra_clean(['T2597b_Lib.hi', 'T2597b_Lib.o']), + multimod_compile_fail, + ['T2597b', '-v0']) + test('TH_spliceE1', normal, compile_and_run, ['']) test('TH_spliceExpr1', normal, compile, ['-v0']) test('TH_spliceE3', normal, compile, ['-v0'])