summaryrefslogtreecommitdiff
path: root/testsuite/tests/safeHaskell
diff options
context:
space:
mode:
authorAlfredo Di Napoli <alfredo@well-typed.com>2021-04-06 16:27:14 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-04-29 17:27:19 -0400
commit7d18e1bace3f3a85eae177654690d91b688c0e8f (patch)
treefca073e898068e90dd49c4ea9243c628dbb4469b /testsuite/tests/safeHaskell
parent7bb3443a4fe8acfaa3fec34f58c91173f737777d (diff)
downloadhaskell-7d18e1bace3f3a85eae177654690d91b688c0e8f.tar.gz
Add GhcMessage and ancillary types
This commit adds GhcMessage and ancillary (PsMessage, TcRnMessage, ..) types. These types will be expanded to represent more errors generated by different subsystems within GHC. Right now, they are underused, but more will come in the glorious future. See https://gitlab.haskell.org/ghc/ghc/-/wikis/Errors-as-(structured)-values for a design overview. Along the way, lots of other things had to happen: * Adds Semigroup and Monoid instance for Bag * Fixes #19746 by parsing OPTIONS_GHC pragmas into Located Strings. See GHC.Parser.Header.toArgs (moved from GHC.Utils.Misc, where it didn't belong anyway). * Addresses (but does not completely fix) #19709, now reporting desugarer warnings and errors appropriately for TH splices. Not done: reporting type-checker warnings for TH splices. * Some small refactoring around Safe Haskell inference, in order to keep separate classes of messages separate. * Some small refactoring around initDsTc, in order to keep separate classes of messages separate. * Separate out the generation of messages (that is, the construction of the text block) from the wrapping of messages (that is, assigning a SrcSpan). This is more modular than the previous design, which mixed the two. Close #19746. This was a collaborative effort by Alfredo di Napoli and Richard Eisenberg, with a key assist on #19746 by Iavor Diatchki. Metric Increase: MultiLayerModules
Diffstat (limited to 'testsuite/tests/safeHaskell')
-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
22 files changed, 29 insertions, 29 deletions
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: