summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/tests/driver/StringListOptions.hs3
-rw-r--r--testsuite/tests/driver/T2464.stderr2
-rw-r--r--testsuite/tests/driver/T2499.stderr6
-rw-r--r--testsuite/tests/driver/all.T1
-rw-r--r--testsuite/tests/ghc-api/T18522-dbg-ppr.hs4
-rw-r--r--testsuite/tests/parser/should_compile/T16619.stderr2
-rw-r--r--testsuite/tests/parser/should_fail/T16270.stderr2
-rw-r--r--testsuite/tests/parser/should_fail/readFail044.stderr4
-rw-r--r--testsuite/tests/parser/should_run/CountAstDeps.stdout12
-rw-r--r--testsuite/tests/parser/should_run/CountParserDeps.stdout10
-rw-r--r--testsuite/tests/regalloc/regalloc_unit_tests.hs2
-rw-r--r--testsuite/tests/safeHaskell/check/Check05.stderr2
-rw-r--r--testsuite/tests/safeHaskell/flags/SafeFlags18.stderr2
-rw-r--r--testsuite/tests/safeHaskell/flags/SafeFlags19.stderr2
-rw-r--r--testsuite/tests/safeHaskell/flags/SafeFlags22.stderr2
-rw-r--r--testsuite/tests/safeHaskell/flags/SafeFlags23.stderr2
-rw-r--r--testsuite/tests/safeHaskell/flags/SafeFlags25.stderr2
-rw-r--r--testsuite/tests/safeHaskell/flags/SafeFlags26.stderr2
-rw-r--r--testsuite/tests/safeHaskell/flags/SafeFlags28.stderr8
-rw-r--r--testsuite/tests/safeHaskell/flags/SafeFlags29.stderr8
-rw-r--r--testsuite/tests/safeHaskell/overlapping/SH_Overlap11.stderr2
-rw-r--r--testsuite/tests/safeHaskell/overlapping/SH_Overlap7.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/SafeInfered05.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/SafeWarn01.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/UnsafeInfered11.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/UnsafeInfered12.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/UnsafeWarn01.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/UnsafeWarn02.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/UnsafeWarn03.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/UnsafeWarn04.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/UnsafeWarn05.stderr4
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/UnsafeWarn06.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/UnsafeWarn07.stderr2
-rw-r--r--testsuite/tests/th/T19709a.hs9
-rw-r--r--testsuite/tests/th/T19709a.stderr6
-rw-r--r--testsuite/tests/th/T19709b.hs12
-rw-r--r--testsuite/tests/th/T19709b.stderr6
-rw-r--r--testsuite/tests/th/T19709c.hs9
-rw-r--r--testsuite/tests/th/T19709c.stderr10
-rw-r--r--testsuite/tests/th/T19709d.hs6
-rw-r--r--testsuite/tests/th/T19709d.stderr16
-rw-r--r--testsuite/tests/th/all.T4
42 files changed, 143 insertions, 41 deletions
diff --git a/testsuite/tests/driver/StringListOptions.hs b/testsuite/tests/driver/StringListOptions.hs
new file mode 100644
index 0000000000..51f8b6db4d
--- /dev/null
+++ b/testsuite/tests/driver/StringListOptions.hs
@@ -0,0 +1,3 @@
+{-# OPTIONS_GHC [ ] #-}
+
+module StringListOptions where
diff --git a/testsuite/tests/driver/T2464.stderr b/testsuite/tests/driver/T2464.stderr
index 3d0074fc82..bba952fd30 100644
--- a/testsuite/tests/driver/T2464.stderr
+++ b/testsuite/tests/driver/T2464.stderr
@@ -1,3 +1,3 @@
-T2464.hs:3:16: warning: [-Wdeprecated-flags (in -Wdefault)]
+T2464.hs:3:17: warning: [-Wdeprecated-flags (in -Wdefault)]
-fffi is deprecated: use -XForeignFunctionInterface or pragma {-# LANGUAGE ForeignFunctionInterface #-} instead
diff --git a/testsuite/tests/driver/T2499.stderr b/testsuite/tests/driver/T2499.stderr
index 9a082d34b1..88d8dbe56a 100644
--- a/testsuite/tests/driver/T2499.stderr
+++ b/testsuite/tests/driver/T2499.stderr
@@ -1,4 +1,6 @@
-T2499.hs:1:12: unknown flag in {-# OPTIONS_GHC #-} pragma: -package
+T2499.hs:1:13: error:
+ unknown flag in {-# OPTIONS_GHC #-} pragma: -package
-T2499.hs:1:12: unknown flag in {-# OPTIONS_GHC #-} pragma: blargh
+T2499.hs:1:22: error:
+ unknown flag in {-# OPTIONS_GHC #-} pragma: blargh
diff --git a/testsuite/tests/driver/all.T b/testsuite/tests/driver/all.T
index 94ecb3006c..447a4d0800 100644
--- a/testsuite/tests/driver/all.T
+++ b/testsuite/tests/driver/all.T
@@ -234,6 +234,7 @@ test('T10970', normal, compile_and_run, [''])
test('T4931', normal, compile_and_run, [''])
test('T11182', normal, compile_and_run, [''])
test('T11381', normal, compile_fail, [''])
+test('StringListOptions', normal, compile, [''])
test('T11429a', normal, compile, ['-Wunrecognised-warning-flags -Wfoobar'])
test('T11429b', normal, compile, ['-Wno-unrecognised-warning-flags -Wfoobar'])
test('T11429c', normal, compile_fail, ['-Wunrecognised-warning-flags -Werror -Wfoobar'])
diff --git a/testsuite/tests/ghc-api/T18522-dbg-ppr.hs b/testsuite/tests/ghc-api/T18522-dbg-ppr.hs
index e0b6a57764..7c16e7f0d0 100644
--- a/testsuite/tests/ghc-api/T18522-dbg-ppr.hs
+++ b/testsuite/tests/ghc-api/T18522-dbg-ppr.hs
@@ -49,7 +49,7 @@ main = do
let (warnings, errors) = partitionMessages messages
case mres of
Nothing -> do
- printBagOfErrors logger dflags warnings
- printBagOfErrors logger dflags errors
+ printMessages logger dflags warnings
+ printMessages logger dflags errors
Just (t, _) -> do
putStrLn $ showSDoc dflags (debugPprType t)
diff --git a/testsuite/tests/parser/should_compile/T16619.stderr b/testsuite/tests/parser/should_compile/T16619.stderr
index 68a8bf5da8..aab7175abd 100644
--- a/testsuite/tests/parser/should_compile/T16619.stderr
+++ b/testsuite/tests/parser/should_compile/T16619.stderr
@@ -1,3 +1,3 @@
-T16619.hs:2:12: warning: [-Wdeprecated-flags (in -Wdefault)]
+T16619.hs:2:13: warning: [-Wdeprecated-flags (in -Wdefault)]
-Wmissing-space-after-bang is deprecated: bang patterns can no longer be written with a space
diff --git a/testsuite/tests/parser/should_fail/T16270.stderr b/testsuite/tests/parser/should_fail/T16270.stderr
index 6666ac7963..323d9c93e3 100644
--- a/testsuite/tests/parser/should_fail/T16270.stderr
+++ b/testsuite/tests/parser/should_fail/T16270.stderr
@@ -1,5 +1,5 @@
-T16270.hs:3:12: warning: [-Wdeprecated-flags (in -Wdefault)]
+T16270.hs:3:13: warning: [-Wdeprecated-flags (in -Wdefault)]
-Werror=missing-space-after-bang is deprecated: bang patterns can no longer be written with a space
T16270.hs:8:1: warning: [-Wtabs (in -Wdefault)]
diff --git a/testsuite/tests/parser/should_fail/readFail044.stderr b/testsuite/tests/parser/should_fail/readFail044.stderr
index 27becac67c..1976b56079 100644
--- a/testsuite/tests/parser/should_fail/readFail044.stderr
+++ b/testsuite/tests/parser/should_fail/readFail044.stderr
@@ -1,6 +1,6 @@
-readFail044.hs:3:16:
+readFail044.hs:3:17: error:
unknown flag in {-# OPTIONS_GHC #-} pragma: -this-flag-does-not-exist
-readFail044.hs:3:16:
+readFail044.hs:3:43: error:
unknown flag in {-# OPTIONS_GHC #-} pragma: -nor-does-this-one
diff --git a/testsuite/tests/parser/should_run/CountAstDeps.stdout b/testsuite/tests/parser/should_run/CountAstDeps.stdout
index a9479a9d8d..cb96d95d78 100644
--- a/testsuite/tests/parser/should_run/CountAstDeps.stdout
+++ b/testsuite/tests/parser/should_run/CountAstDeps.stdout
@@ -1,4 +1,4 @@
-Found 245 Language.Haskell.Syntax module dependencies
+Found 255 Language.Haskell.Syntax module dependencies
GHC.Builtin.Names
GHC.Builtin.PrimOps
GHC.Builtin.Types
@@ -83,6 +83,8 @@ GHC.Driver.CmdLine
GHC.Driver.Env
GHC.Driver.Env.Types
GHC.Driver.Errors
+GHC.Driver.Errors.Ppr
+GHC.Driver.Errors.Types
GHC.Driver.Flags
GHC.Driver.Hooks
GHC.Driver.Monad
@@ -103,12 +105,18 @@ GHC.Hs.Lit
GHC.Hs.Pat
GHC.Hs.Type
GHC.Hs.Utils
+GHC.HsToCore.Errors.Ppr
+GHC.HsToCore.Errors.Types
GHC.Iface.Ext.Fields
GHC.Iface.Recomp.Binary
GHC.Iface.Syntax
GHC.Iface.Type
GHC.Linker.Types
GHC.Parser.Annotation
+GHC.Parser.Errors
+GHC.Parser.Errors.Ppr
+GHC.Parser.Errors.Types
+GHC.Parser.Types
GHC.Platform
GHC.Platform.AArch64
GHC.Platform.ARM
@@ -138,6 +146,8 @@ GHC.StgToCmm.Types
GHC.SysTools.BaseDir
GHC.SysTools.Terminal
GHC.Tc.Errors.Hole.FitTypes
+GHC.Tc.Errors.Ppr
+GHC.Tc.Errors.Types
GHC.Tc.Types
GHC.Tc.Types.Constraint
GHC.Tc.Types.Evidence
diff --git a/testsuite/tests/parser/should_run/CountParserDeps.stdout b/testsuite/tests/parser/should_run/CountParserDeps.stdout
index 73a238fd09..82daac1a97 100644
--- a/testsuite/tests/parser/should_run/CountParserDeps.stdout
+++ b/testsuite/tests/parser/should_run/CountParserDeps.stdout
@@ -1,4 +1,4 @@
-Found 253 GHC.Parser module dependencies
+Found 261 GHC.Parser module dependencies
GHC.Builtin.Names
GHC.Builtin.PrimOps
GHC.Builtin.Types
@@ -84,6 +84,8 @@ GHC.Driver.CmdLine
GHC.Driver.Env
GHC.Driver.Env.Types
GHC.Driver.Errors
+GHC.Driver.Errors.Ppr
+GHC.Driver.Errors.Types
GHC.Driver.Flags
GHC.Driver.Hooks
GHC.Driver.Monad
@@ -104,6 +106,8 @@ GHC.Hs.Lit
GHC.Hs.Pat
GHC.Hs.Type
GHC.Hs.Utils
+GHC.HsToCore.Errors.Ppr
+GHC.HsToCore.Errors.Types
GHC.Iface.Ext.Fields
GHC.Iface.Recomp.Binary
GHC.Iface.Syntax
@@ -113,6 +117,8 @@ GHC.Parser
GHC.Parser.Annotation
GHC.Parser.CharClass
GHC.Parser.Errors
+GHC.Parser.Errors.Ppr
+GHC.Parser.Errors.Types
GHC.Parser.Lexer
GHC.Parser.PostProcess
GHC.Parser.PostProcess.Haddock
@@ -146,6 +152,8 @@ GHC.StgToCmm.Types
GHC.SysTools.BaseDir
GHC.SysTools.Terminal
GHC.Tc.Errors.Hole.FitTypes
+GHC.Tc.Errors.Ppr
+GHC.Tc.Errors.Types
GHC.Tc.Types
GHC.Tc.Types.Constraint
GHC.Tc.Types.Evidence
diff --git a/testsuite/tests/regalloc/regalloc_unit_tests.hs b/testsuite/tests/regalloc/regalloc_unit_tests.hs
index b956f2579a..4e84261264 100644
--- a/testsuite/tests/regalloc/regalloc_unit_tests.hs
+++ b/testsuite/tests/regalloc/regalloc_unit_tests.hs
@@ -124,7 +124,7 @@ compileCmmForRegAllocStats logger dflags' cmmFile ncgImplF us = do
errorMsgs = fmap mkParserErr errors
-- print parser errors or warnings
- mapM_ (printBagOfErrors logger dflags) [warningMsgs, errorMsgs]
+ mapM_ (printMessages logger dflags . mkMessages) [warningMsgs, errorMsgs]
let initTopSRT = emptySRT thisMod
cmmGroup <- fmap snd $ cmmPipeline hscEnv initTopSRT $ fst $ fromJust parsedCmm
diff --git a/testsuite/tests/safeHaskell/check/Check05.stderr b/testsuite/tests/safeHaskell/check/Check05.stderr
index 9db0875f44..c14f8c02b2 100644
--- a/testsuite/tests/safeHaskell/check/Check05.stderr
+++ b/testsuite/tests/safeHaskell/check/Check05.stderr
@@ -1,3 +1,3 @@
-Check05.hs:1:16:
+Check05.hs:1:17:
Warning: -fpackage-trust ignored; must be specified with a Safe Haskell flag
diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags18.stderr b/testsuite/tests/safeHaskell/flags/SafeFlags18.stderr
index 2766f41512..603cb636a7 100644
--- a/testsuite/tests/safeHaskell/flags/SafeFlags18.stderr
+++ b/testsuite/tests/safeHaskell/flags/SafeFlags18.stderr
@@ -1,3 +1,3 @@
-SafeFlags18.hs:1:16: error: [-Werror]
+SafeFlags18.hs:1:17: error: [-Werror]
-fpackage-trust ignored; must be specified with a Safe Haskell flag
diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags19.stderr b/testsuite/tests/safeHaskell/flags/SafeFlags19.stderr
index adbc757494..e47c40a558 100644
--- a/testsuite/tests/safeHaskell/flags/SafeFlags19.stderr
+++ b/testsuite/tests/safeHaskell/flags/SafeFlags19.stderr
@@ -1,3 +1,3 @@
-SafeFlags19.hs:1:16:
+SafeFlags19.hs:1:17:
unknown flag in {-# OPTIONS_GHC #-} pragma: -fno-package-trust
diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags22.stderr b/testsuite/tests/safeHaskell/flags/SafeFlags22.stderr
index 9d93e5e332..cc4d8b7ae1 100644
--- a/testsuite/tests/safeHaskell/flags/SafeFlags22.stderr
+++ b/testsuite/tests/safeHaskell/flags/SafeFlags22.stderr
@@ -1,5 +1,5 @@
-SafeFlags22.hs:2:16: warning: [-Wunsafe]
+SafeFlags22.hs:2:17: warning: [-Wunsafe]
‘SafeFlags22’ has been inferred as unsafe!
Reason:
SafeFlags22.hs:8:1: error:
diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags23.stderr b/testsuite/tests/safeHaskell/flags/SafeFlags23.stderr
index 6fef7a3e4c..3bb3d3b02a 100644
--- a/testsuite/tests/safeHaskell/flags/SafeFlags23.stderr
+++ b/testsuite/tests/safeHaskell/flags/SafeFlags23.stderr
@@ -1,5 +1,5 @@
-SafeFlags23.hs:2:16: error: [-Wunsafe, -Werror=unsafe]
+SafeFlags23.hs:2:17: error: [-Wunsafe, -Werror=unsafe]
‘SafeFlags22’ has been inferred as unsafe!
Reason:
SafeFlags23.hs:8:1: error:
diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags25.stderr b/testsuite/tests/safeHaskell/flags/SafeFlags25.stderr
index e26a813e83..57bcdaa192 100644
--- a/testsuite/tests/safeHaskell/flags/SafeFlags25.stderr
+++ b/testsuite/tests/safeHaskell/flags/SafeFlags25.stderr
@@ -1,3 +1,3 @@
-SafeFlags25.hs:2:16: warning: [-Wsafe]
+SafeFlags25.hs:2:17: warning: [-Wsafe]
‘SafeFlags25’ has been inferred as safe!
diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags26.stderr b/testsuite/tests/safeHaskell/flags/SafeFlags26.stderr
index dabbd92c00..f4b084a9a5 100644
--- a/testsuite/tests/safeHaskell/flags/SafeFlags26.stderr
+++ b/testsuite/tests/safeHaskell/flags/SafeFlags26.stderr
@@ -1,3 +1,3 @@
-SafeFlags26.hs:2:16: error: [-Wsafe, -Werror=safe]
+SafeFlags26.hs:2:17: error: [-Wsafe, -Werror=safe]
‘SafeFlags26’ has been inferred as safe!
diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags28.stderr b/testsuite/tests/safeHaskell/flags/SafeFlags28.stderr
index 46dcabb9fd..13fdaf0c1a 100644
--- a/testsuite/tests/safeHaskell/flags/SafeFlags28.stderr
+++ b/testsuite/tests/safeHaskell/flags/SafeFlags28.stderr
@@ -1,12 +1,12 @@
-SafeFlags28.hs:1:16:
+SafeFlags28.hs:1:17: error:
unknown flag in {-# OPTIONS_GHC #-} pragma: -trust
-SafeFlags28.hs:1:16:
+SafeFlags28.hs:1:24: error:
unknown flag in {-# OPTIONS_GHC #-} pragma: base,
-SafeFlags28.hs:1:16:
+SafeFlags28.hs:1:30: error:
unknown flag in {-# OPTIONS_GHC #-} pragma: -trust
-SafeFlags28.hs:1:16:
+SafeFlags28.hs:1:37: error:
unknown flag in {-# OPTIONS_GHC #-} pragma: bytestring
diff --git a/testsuite/tests/safeHaskell/flags/SafeFlags29.stderr b/testsuite/tests/safeHaskell/flags/SafeFlags29.stderr
index ee0d13b957..2c32e70254 100644
--- a/testsuite/tests/safeHaskell/flags/SafeFlags29.stderr
+++ b/testsuite/tests/safeHaskell/flags/SafeFlags29.stderr
@@ -1,12 +1,12 @@
-SafeFlags29.hs:2:16:
+SafeFlags29.hs:2:17: error:
unknown flag in {-# OPTIONS_GHC #-} pragma: -trust
-SafeFlags29.hs:2:16:
+SafeFlags29.hs:2:24: error:
unknown flag in {-# OPTIONS_GHC #-} pragma: base
-SafeFlags29.hs:2:16:
+SafeFlags29.hs:2:29: error:
unknown flag in {-# OPTIONS_GHC #-} pragma: -trust
-SafeFlags29.hs:2:16:
+SafeFlags29.hs:2:36: error:
unknown flag in {-# OPTIONS_GHC #-} pragma: bytestring
diff --git a/testsuite/tests/safeHaskell/overlapping/SH_Overlap11.stderr b/testsuite/tests/safeHaskell/overlapping/SH_Overlap11.stderr
index 9eb029951f..0e990b4f97 100644
--- a/testsuite/tests/safeHaskell/overlapping/SH_Overlap11.stderr
+++ b/testsuite/tests/safeHaskell/overlapping/SH_Overlap11.stderr
@@ -2,7 +2,7 @@
[2 of 3] Compiling SH_Overlap11_A ( SH_Overlap11_A.hs, SH_Overlap11_A.o )
[3 of 3] Compiling SH_Overlap11 ( SH_Overlap11.hs, SH_Overlap11.o )
-SH_Overlap11.hs:2:16: warning: [-Wunsafe]
+SH_Overlap11.hs:2:17: warning: [-Wunsafe]
‘SH_Overlap11’ has been inferred as unsafe!
Reason:
SH_Overlap11.hs:18:8: warning:
diff --git a/testsuite/tests/safeHaskell/overlapping/SH_Overlap7.stderr b/testsuite/tests/safeHaskell/overlapping/SH_Overlap7.stderr
index 4a4fb3779c..dda1490ce0 100644
--- a/testsuite/tests/safeHaskell/overlapping/SH_Overlap7.stderr
+++ b/testsuite/tests/safeHaskell/overlapping/SH_Overlap7.stderr
@@ -2,7 +2,7 @@
[2 of 3] Compiling SH_Overlap7_A ( SH_Overlap7_A.hs, SH_Overlap7_A.o )
[3 of 3] Compiling SH_Overlap7 ( SH_Overlap7.hs, SH_Overlap7.o )
-SH_Overlap7.hs:2:16: error: [-Wunsafe, -Werror=unsafe]
+SH_Overlap7.hs:2:17: error: [-Wunsafe, -Werror=unsafe]
‘SH_Overlap7’ has been inferred as unsafe!
Reason:
SH_Overlap7.hs:15:8:
diff --git a/testsuite/tests/safeHaskell/safeInfered/SafeInfered05.stderr b/testsuite/tests/safeHaskell/safeInfered/SafeInfered05.stderr
index 2e9e92a696..664d3fa298 100644
--- a/testsuite/tests/safeHaskell/safeInfered/SafeInfered05.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/SafeInfered05.stderr
@@ -3,6 +3,6 @@ SafeInfered05.hs:3:14: warning: [-Wdeprecated-flags (in -Wdefault)]
-XOverlappingInstances is deprecated: instead use per-instance pragmas OVERLAPPING/OVERLAPPABLE/OVERLAPS
[1 of 2] Compiling SafeInfered05_A ( SafeInfered05_A.hs, SafeInfered05_A.o )
-SafeInfered05_A.hs:3:16: warning: [-Wsafe]
+SafeInfered05_A.hs:3:17: warning: [-Wsafe]
‘SafeInfered05_A’ has been inferred as safe!
[2 of 2] Compiling SafeInfered05 ( SafeInfered05.hs, SafeInfered05.o )
diff --git a/testsuite/tests/safeHaskell/safeInfered/SafeWarn01.stderr b/testsuite/tests/safeHaskell/safeInfered/SafeWarn01.stderr
index 7efaba3490..13155f3043 100644
--- a/testsuite/tests/safeHaskell/safeInfered/SafeWarn01.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/SafeWarn01.stderr
@@ -1,3 +1,3 @@
-SafeWarn01.hs:3:16: warning: [-Wsafe]
+SafeWarn01.hs:3:17: warning: [-Wsafe]
‘SafeWarn01’ has been inferred as safe!
diff --git a/testsuite/tests/safeHaskell/safeInfered/UnsafeInfered11.stderr b/testsuite/tests/safeHaskell/safeInfered/UnsafeInfered11.stderr
index 919eec4e6b..31a8488b74 100644
--- a/testsuite/tests/safeHaskell/safeInfered/UnsafeInfered11.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/UnsafeInfered11.stderr
@@ -1,6 +1,6 @@
[1 of 2] Compiling UnsafeInfered11_A ( UnsafeInfered11_A.hs, UnsafeInfered11_A.o )
-UnsafeInfered11_A.hs:2:16: warning: [-Wunsafe]
+UnsafeInfered11_A.hs:2:17: warning: [-Wunsafe]
‘UnsafeInfered11_A’ has been inferred as unsafe!
Reason:
UnsafeInfered11_A.hs:18:11: warning:
diff --git a/testsuite/tests/safeHaskell/safeInfered/UnsafeInfered12.stderr b/testsuite/tests/safeHaskell/safeInfered/UnsafeInfered12.stderr
index e3529474bd..22a07d9f96 100644
--- a/testsuite/tests/safeHaskell/safeInfered/UnsafeInfered12.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/UnsafeInfered12.stderr
@@ -1,5 +1,5 @@
-UnsafeInfered12.hs:3:16: error: [-Wunsafe, -Werror=unsafe]
+UnsafeInfered12.hs:3:17: error: [-Wunsafe, -Werror=unsafe]
‘UnsafeInfered12’ has been inferred as unsafe!
Reason:
UnsafeInfered12.hs:2:14:
diff --git a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn01.stderr b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn01.stderr
index 5424c5f2a2..1bced3b94a 100644
--- a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn01.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn01.stderr
@@ -1,5 +1,5 @@
-UnsafeWarn01.hs:3:16: warning: [-Wunsafe]
+UnsafeWarn01.hs:3:17: warning: [-Wunsafe]
‘UnsafeWarn01’ has been inferred as unsafe!
Reason:
UnsafeWarn01.hs:8:1: error:
diff --git a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn02.stderr b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn02.stderr
index 881db587d5..0061ed3e1d 100644
--- a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn02.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn02.stderr
@@ -1,5 +1,5 @@
-UnsafeWarn02.hs:3:16: warning: [-Wunsafe]
+UnsafeWarn02.hs:3:17: warning: [-Wunsafe]
‘UnsafeWarn02’ has been inferred as unsafe!
Reason:
UnsafeWarn02.hs:5:14:
diff --git a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn03.stderr b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn03.stderr
index ba23b72ee1..c48a136f74 100644
--- a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn03.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn03.stderr
@@ -1,5 +1,5 @@
-UnsafeWarn03.hs:4:16: warning: [-Wunsafe]
+UnsafeWarn03.hs:4:17: warning: [-Wunsafe]
‘UnsafeWarn03’ has been inferred as unsafe!
Reason:
UnsafeWarn03.hs:9:1: error:
diff --git a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn04.stderr b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn04.stderr
index 90e6d5b6f1..94f0203f46 100644
--- a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn04.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn04.stderr
@@ -1,5 +1,5 @@
-UnsafeWarn04.hs:4:16: warning: [-Wunsafe]
+UnsafeWarn04.hs:4:17: warning: [-Wunsafe]
‘UnsafeWarn04’ has been inferred as unsafe!
Reason:
UnsafeWarn04.hs:9:1: error:
diff --git a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn05.stderr b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn05.stderr
index 2977504457..471443ea12 100644
--- a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn05.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn05.stderr
@@ -1,12 +1,12 @@
-UnsafeWarn05.hs:5:16: warning: [-Wunsafe]
+UnsafeWarn05.hs:5:17: warning: [-Wunsafe]
‘UnsafeWarn05’ has been inferred as unsafe!
Reason:
UnsafeWarn05.hs:11:1: error:
System.IO.Unsafe: Can't be safely imported!
The module itself isn't safe.
-UnsafeWarn05.hs:5:16: warning: [-Wunsafe]
+UnsafeWarn05.hs:5:17: warning: [-Wunsafe]
‘UnsafeWarn05’ has been inferred as unsafe!
Reason:
UnsafeWarn05.hs:16:11: warning:
diff --git a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn06.stderr b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn06.stderr
index 98b1360202..b494f02eec 100644
--- a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn06.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn06.stderr
@@ -1,5 +1,5 @@
-UnsafeWarn06.hs:4:16: warning: [-Wunsafe]
+UnsafeWarn06.hs:4:17: warning: [-Wunsafe]
‘UnsafeWarn06’ has been inferred as unsafe!
Reason:
UnsafeWarn06.hs:9:11: warning:
diff --git a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn07.stderr b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn07.stderr
index 91a4ec3547..0b3370cb59 100644
--- a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn07.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn07.stderr
@@ -1,5 +1,5 @@
-UnsafeWarn07.hs:5:16: warning: [-Wunsafe]
+UnsafeWarn07.hs:5:17: warning: [-Wunsafe]
‘UnsafeWarn07’ has been inferred as unsafe!
Reason:
UnsafeWarn07.hs:10:11: warning:
diff --git a/testsuite/tests/th/T19709a.hs b/testsuite/tests/th/T19709a.hs
new file mode 100644
index 0000000000..8c0e5fd665
--- /dev/null
+++ b/testsuite/tests/th/T19709a.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE TemplateHaskell, ExplicitForAll, PolyKinds #-}
+
+module T19709a where
+
+import GHC.Exts
+
+$( let levid :: forall (r :: RuntimeRep) (a :: TYPE r). a -> a
+ levid x = x
+ in return [] )
diff --git a/testsuite/tests/th/T19709a.stderr b/testsuite/tests/th/T19709a.stderr
new file mode 100644
index 0000000000..4cb72aeed7
--- /dev/null
+++ b/testsuite/tests/th/T19709a.stderr
@@ -0,0 +1,6 @@
+
+T19709a.hs:8:14: error:
+ A levity-polymorphic type is not allowed here:
+ Type: a
+ Kind: TYPE r
+ In the type of binder ‘x’
diff --git a/testsuite/tests/th/T19709b.hs b/testsuite/tests/th/T19709b.hs
new file mode 100644
index 0000000000..afc9ed5769
--- /dev/null
+++ b/testsuite/tests/th/T19709b.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE TemplateHaskell, ExplicitForAll, PolyKinds, TypeApplications #-}
+
+module T19709b where
+
+import GHC.Exts
+import Language.Haskell.TH
+
+$( let levfun :: forall (r :: RuntimeRep) (a :: TYPE r). a -> ()
+ levfun = error "e1" -- NB: this, so far, is OK: no levity-polymorphic binder
+
+ in levfun (error @Any "e2") -- but this is very naughty: levity-polymorphic argument
+ `seq` return [] )
diff --git a/testsuite/tests/th/T19709b.stderr b/testsuite/tests/th/T19709b.stderr
new file mode 100644
index 0000000000..78405ebaea
--- /dev/null
+++ b/testsuite/tests/th/T19709b.stderr
@@ -0,0 +1,6 @@
+
+T19709b.hs:11:14: error:
+ A levity-polymorphic type is not allowed here:
+ Type: Any
+ Kind: TYPE Any
+ In the type of expression: (error @Any "e2")
diff --git a/testsuite/tests/th/T19709c.hs b/testsuite/tests/th/T19709c.hs
new file mode 100644
index 0000000000..588b269fc3
--- /dev/null
+++ b/testsuite/tests/th/T19709c.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# OPTIONS_GHC -Wincomplete-patterns -Werror #-}
+
+module T19709c where
+
+import Language.Haskell.TH
+
+$( do runIO $ putStrLn "compiling the splice"
+ case tail "hello" of "hello" -> return [] )
diff --git a/testsuite/tests/th/T19709c.stderr b/testsuite/tests/th/T19709c.stderr
new file mode 100644
index 0000000000..3bedc08dc9
--- /dev/null
+++ b/testsuite/tests/th/T19709c.stderr
@@ -0,0 +1,10 @@
+
+T19709c.hs:9:7: error: [-Wincomplete-patterns (in -Wextra), -Werror=incomplete-patterns]
+ Pattern match(es) are non-exhaustive
+ In a case alternative:
+ Patterns of type ‘String’ not matched:
+ []
+ [p] where p is not one of {'h'}
+ (p:_:_) where p is not one of {'h'}
+ ['h']
+ ...
diff --git a/testsuite/tests/th/T19709d.hs b/testsuite/tests/th/T19709d.hs
new file mode 100644
index 0000000000..81985e80db
--- /dev/null
+++ b/testsuite/tests/th/T19709d.hs
@@ -0,0 +1,6 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# OPTIONS_GHC -Wincomplete-patterns #-}
+
+module T19709d where
+
+$( case tail "hello" of "hello" -> return [] )
diff --git a/testsuite/tests/th/T19709d.stderr b/testsuite/tests/th/T19709d.stderr
new file mode 100644
index 0000000000..4adadd09ba
--- /dev/null
+++ b/testsuite/tests/th/T19709d.stderr
@@ -0,0 +1,16 @@
+
+T19709d.hs:6:4: warning: [-Wincomplete-patterns (in -Wextra)]
+ Pattern match(es) are non-exhaustive
+ In a case alternative:
+ Patterns of type ‘String’ not matched:
+ []
+ [p] where p is not one of {'h'}
+ (p:_:_) where p is not one of {'h'}
+ ['h']
+ ...
+
+T19709d.hs:1:1: error:
+ Exception when trying to run compile-time code:
+ T19709d.hs:6:4-44: Non-exhaustive patterns in case
+
+ Code: (case tail "hello" of "hello" -> return [])
diff --git a/testsuite/tests/th/all.T b/testsuite/tests/th/all.T
index fb3bc7fb49..c34b92977a 100644
--- a/testsuite/tests/th/all.T
+++ b/testsuite/tests/th/all.T
@@ -514,6 +514,10 @@ test('TH_BytesShowEqOrd', normal, compile_and_run, [''])
test('T18102', normal, compile_fail, [''])
test('T18102b', extra_files(['T18102b_aux.hs']), compile_and_run, [''])
test('T18121', normal, compile, [''])
+test('T19709a', normal, compile_fail, [''])
+test('T19709b', normal, compile_fail, [''])
+test('T19709c', normal, compile_fail, [''])
+test('T19709d', normal, compile_fail, [''])
test('T18123', normal, compile, [''])
test('T18388', normal, compile, [''])
test('T18612', normal, compile, [''])