summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Gundry <adam@well-typed.com>2023-03-23 21:21:19 +0000
committerAdam Gundry <adam@well-typed.com>2023-03-24 16:36:43 +0000
commita2f4dbfd57ec8dc52db9b41761d3b958f6a143d5 (patch)
tree9525afe3a0b4ac2037921a0ca6d53a355442cdf3
parentb8d783d24b9a617ad1e3038abeb75d322703ef65 (diff)
downloadhaskell-wip/amg/T22757.tar.gz
Add `-Wunclassified` warning flag so all warnings have flags (#22757)wip/amg/T22757
In particular this means that warnings without flags, such as those generated by `reportWarning` in Template Haskell, can still be suppresed using `-w`.
-rw-r--r--compiler/GHC/Driver/Flags.hs5
-rw-r--r--compiler/GHC/Types/Error.hs19
-rw-r--r--compiler/GHC/Utils/Error.hs3
-rw-r--r--docs/users_guide/using-warnings.rst15
-rw-r--r--testsuite/tests/corelint/LintEtaExpand.stderr4
-rw-r--r--testsuite/tests/corelint/T21115b.stderr2
-rw-r--r--testsuite/tests/deSugar/should_compile/T13290.stderr2
-rw-r--r--testsuite/tests/dependent/should_compile/T14066a.stderr2
-rw-r--r--testsuite/tests/driver/T20436/T20436.stderr2
-rw-r--r--testsuite/tests/ghc-api/T10052/T10052.stderr2
-rw-r--r--testsuite/tests/ghci.debugger/scripts/print007.stderr2
-rw-r--r--testsuite/tests/ghci/scripts/StaticPtr.stderr2
-rw-r--r--testsuite/tests/ghci/should_fail/T10549.stderr2
-rw-r--r--testsuite/tests/ghci/should_fail/T10549a.stderr2
-rw-r--r--testsuite/tests/indexed-types/should_compile/T9085.stderr2
-rw-r--r--testsuite/tests/parser/should_compile/OpaqueParseWarn1.stderr2
-rw-r--r--testsuite/tests/plugins/T19926.stderr2
-rw-r--r--testsuite/tests/pmcheck/should_compile/TooManyDeltas.stderr4
-rw-r--r--testsuite/tests/rename/should_compile/rn049.stderr2
-rw-r--r--testsuite/tests/safeHaskell/check/Check05.stderr4
-rw-r--r--testsuite/tests/safeHaskell/flags/SafeFlags18.stderr2
-rw-r--r--testsuite/tests/safeHaskell/ghci/p1.stderr4
-rw-r--r--testsuite/tests/safeHaskell/ghci/p14.stderr2
-rw-r--r--testsuite/tests/safeHaskell/ghci/p16.stderr2
-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/UnsafeInfered11.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/UnsafeWarn05.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/UnsafeWarn06.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeInfered/UnsafeWarn07.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeLanguage/SafeLang01.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeLanguage/SafeLang02.stderr4
-rw-r--r--testsuite/tests/safeHaskell/safeLanguage/SafeLang03.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeLanguage/SafeLang07.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeLanguage/SafeLang12.stderr4
-rw-r--r--testsuite/tests/safeHaskell/safeLanguage/SafeLang16.stderr2
-rw-r--r--testsuite/tests/safeHaskell/safeLanguage/SafeLang19.stderr2
-rw-r--r--testsuite/tests/simplCore/should_compile/T4398.stderr2
-rw-r--r--testsuite/tests/simplCore/should_compile/T8537.stderr2
-rw-r--r--testsuite/tests/simplCore/should_compile/simpl016.stderr2
-rw-r--r--testsuite/tests/stage1/T13609.stderr2
-rw-r--r--testsuite/tests/th/ClosedFam1TH.stderr2
-rw-r--r--testsuite/tests/th/T7477.stderr2
-rw-r--r--testsuite/tests/th/T8333.stderr2
-rw-r--r--testsuite/tests/th/T8759.stderr2
-rw-r--r--testsuite/tests/th/TH_PromotedList.stderr2
-rw-r--r--testsuite/tests/th/TH_PromotedTuple.stderr2
-rw-r--r--testsuite/tests/th/TH_RichKinds.stderr2
-rw-r--r--testsuite/tests/th/TH_RichKinds2.stderr2
-rw-r--r--testsuite/tests/th/TH_TyInstWhere2.stderr4
-rw-r--r--testsuite/tests/th/TH_finalizer.stderr3
-rw-r--r--testsuite/tests/typecheck/should_compile/T10504.stderr2
-rw-r--r--testsuite/tests/typecheck/should_compile/T6018.stderr4
-rw-r--r--testsuite/tests/typecheck/should_compile/T7050.stderr2
-rw-r--r--testsuite/tests/typecheck/should_compile/T7562.stderr2
-rw-r--r--testsuite/tests/typecheck/should_compile/tc265.stderr2
-rw-r--r--testsuite/tests/typecheck/should_fail/T14761a.stderr6
-rw-r--r--testsuite/tests/typecheck/should_fail/T3966.stderr2
-rw-r--r--testsuite/tests/unboxedsums/unpack_sums_5.stderr4
-rw-r--r--testsuite/tests/warnings/minimal/WarnMinimal.stderr6
-rw-r--r--testsuite/tests/warnings/should_compile/T19296.stderr2
-rw-r--r--testsuite/tests/warnings/should_compile/T22757.hs7
-rw-r--r--testsuite/tests/warnings/should_compile/all.T1
63 files changed, 109 insertions, 82 deletions
diff --git a/compiler/GHC/Driver/Flags.hs b/compiler/GHC/Driver/Flags.hs
index df49034d13..82ae334cac 100644
--- a/compiler/GHC/Driver/Flags.hs
+++ b/compiler/GHC/Driver/Flags.hs
@@ -635,6 +635,7 @@ data WarningFlag =
| Opt_WarnTypeEqualityRequiresOperators -- Since 9.4
| Opt_WarnLoopySuperclassSolve -- Since 9.6
| Opt_WarnTermVariableCapture -- Since 9.8
+ | Opt_WarnUnclassified -- Since 9.8
deriving (Eq, Ord, Show, Enum)
-- | Return the names of a WarningFlag
@@ -741,6 +742,7 @@ warnFlagNames wflag = case wflag of
Opt_WarnTypeEqualityOutOfScope -> "type-equality-out-of-scope" :| []
Opt_WarnLoopySuperclassSolve -> "loopy-superclass-solve" :| []
Opt_WarnTypeEqualityRequiresOperators -> "type-equality-requires-operators" :| []
+ Opt_WarnUnclassified -> "unclassified" :| []
-- -----------------------------------------------------------------------------
-- Standard sets of warning options
@@ -879,7 +881,8 @@ standardWarnings -- see Note [Documenting warning flags]
Opt_WarnUnicodeBidirectionalFormatCharacters,
Opt_WarnGADTMonoLocalBinds,
Opt_WarnLoopySuperclassSolve,
- Opt_WarnTypeEqualityRequiresOperators
+ Opt_WarnTypeEqualityRequiresOperators,
+ Opt_WarnUnclassified
]
-- | Things you get with -W
diff --git a/compiler/GHC/Types/Error.hs b/compiler/GHC/Types/Error.hs
index 0eccf085bb..65bf1a69ba 100644
--- a/compiler/GHC/Types/Error.hs
+++ b/compiler/GHC/Types/Error.hs
@@ -4,6 +4,7 @@
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE TypeApplications #-}
@@ -28,7 +29,7 @@ module GHC.Types.Error
, Diagnostic (..)
, UnknownDiagnostic (..)
, DiagnosticMessage (..)
- , DiagnosticReason (..)
+ , DiagnosticReason (WarningWithoutFlag, ..)
, DiagnosticHint (..)
, mkPlainDiagnostic
, mkPlainError
@@ -322,14 +323,12 @@ mkDecoratedError hints docs = DiagnosticMessage (mkDecorated docs) ErrorWithoutF
-- can be completely statically-computed (i.e. this is an error or a warning
-- no matter what), or influenced by the specific state of the 'DynFlags' at
-- the moment of the creation of a new 'Diagnostic'. For example, a parsing
--- error is /always/ going to be an error, whereas a 'WarningWithoutFlag
+-- error is /always/ going to be an error, whereas a 'WarningWithFlag
-- Opt_WarnUnusedImports' might turn into an error due to '-Werror' or
-- '-Werror=warn-unused-imports'. Interpreting a 'DiagnosticReason' together
-- with its associated 'Severity' gives us the full picture.
data DiagnosticReason
- = WarningWithoutFlag
- -- ^ Born as a warning.
- | WarningWithFlag !WarningFlag
+ = WarningWithFlag !WarningFlag
-- ^ Warning was enabled with the flag.
| WarningWithCategory !WarningCategory
-- ^ Warning was enabled with a custom category.
@@ -339,11 +338,17 @@ data DiagnosticReason
instance Outputable DiagnosticReason where
ppr = \case
- WarningWithoutFlag -> text "WarningWithoutFlag"
WarningWithFlag wf -> text ("WarningWithFlag " ++ show wf)
WarningWithCategory cat -> text "WarningWithCategory" <+> ppr cat
ErrorWithoutFlag -> text "ErrorWithoutFlag"
+-- | Warnings that do not otherwise have flags to control them are controlled by
+-- the @-Wunclassified@ flag. In particular this means that @-w@ can be used to
+-- suppress unclassified warnings, as well as @-Werror@ or
+-- @-Werror=unclassified@ promoting them to errors.
+pattern WarningWithoutFlag :: DiagnosticReason
+pattern WarningWithoutFlag = WarningWithFlag Opt_WarnUnclassified
+
-- | An envelope for GHC's facts about a running program, parameterised over the
-- /domain-specific/ (i.e. parsing, typecheck-renaming, etc) diagnostics.
--
@@ -511,7 +516,6 @@ mkLocMessageWarningGroups show_warn_groups msg_class locn msg
-- The above can happen when displaying an error message
-- in a log file, e.g. with -ddump-tc-trace. It should not
-- happen otherwise, though.
- flag_msg SevError WarningWithoutFlag = Just (col "-Werror")
flag_msg SevError (WarningWithFlag wflag) =
let name = NE.head (warnFlagNames wflag) in
Just $ col ("-W" ++ name) <+> warn_flag_grp (smallestWarningGroups wflag)
@@ -523,7 +527,6 @@ mkLocMessageWarningGroups show_warn_groups msg_class locn msg
<> comma
<+> coloured msg_colour (text "-Werror=" <> ppr cat)
flag_msg SevError ErrorWithoutFlag = Nothing
- flag_msg SevWarning WarningWithoutFlag = Nothing
flag_msg SevWarning (WarningWithFlag wflag) =
let name = NE.head (warnFlagNames wflag) in
Just (col ("-W" ++ name) <+> warn_flag_grp (smallestWarningGroups wflag))
diff --git a/compiler/GHC/Utils/Error.hs b/compiler/GHC/Utils/Error.hs
index 8ea61c6f39..66783daf33 100644
--- a/compiler/GHC/Utils/Error.hs
+++ b/compiler/GHC/Utils/Error.hs
@@ -142,9 +142,6 @@ diagReasonSeverity opts reason = case reason of
| not (diag_wopt_custom wcat opts) -> SevIgnore
| diag_fatal_wopt_custom wcat opts -> SevError
| otherwise -> SevWarning
- WarningWithoutFlag
- | diag_warn_is_error opts -> SevError
- | otherwise -> SevWarning
ErrorWithoutFlag
-> SevError
diff --git a/docs/users_guide/using-warnings.rst b/docs/users_guide/using-warnings.rst
index c7470f7d48..b0e40e281a 100644
--- a/docs/users_guide/using-warnings.rst
+++ b/docs/users_guide/using-warnings.rst
@@ -78,6 +78,7 @@ as ``-Wno-...`` for every individual warning in the group.
* :ghc-flag:`-Wforall-identifier`
* :ghc-flag:`-Wgadt-mono-local-binds`
* :ghc-flag:`-Wtype-equality-requires-operators`
+ * :ghc-flag:`-Wunclassified`
.. ghc-flag:: -W
:shortdesc: enable normal warnings
@@ -2397,6 +2398,20 @@ of ``-W(no-)*``.
When :ghc-flag:`-Wterm-variable-capture` is enabled, GHC warns against implicit quantification
that would stop working under ``RequiredTypeArguments``.
+.. ghc-flag:: -Wunclassified
+ :shortdesc: warn about issues that are not controlled by another flag
+ :type: dynamic
+ :reverse: -Wno-unclassified
+
+ :since: 9.8.1
+
+ :default: on
+
+ There are a variety of warnings that are enabled by default and do not have
+ a more specific flag to control them. These are grouped under the
+ :ghc-flag:`-Wunclassified` flag, primarily so that they can be silenced
+ or selectively promoted to errors.
+
If you're feeling really paranoid, the :ghc-flag:`-dcore-lint` option is a good choice.
It turns on heavyweight intra-pass sanity-checking within GHC. (It checks GHC's
diff --git a/testsuite/tests/corelint/LintEtaExpand.stderr b/testsuite/tests/corelint/LintEtaExpand.stderr
index 47274d0cc6..3ed66f093b 100644
--- a/testsuite/tests/corelint/LintEtaExpand.stderr
+++ b/testsuite/tests/corelint/LintEtaExpand.stderr
@@ -1,4 +1,4 @@
-<no location info>: warning:
+<no location info>: warning: [-Wunclassified (in -Wdefault)]
Cannot eta expand ‘coerce’
The following type does not have a fixed runtime representation:
• a :: TYPE k
@@ -7,7 +7,7 @@
TvSubst = []
CvSubst = []>
in coerce BAD 1
-<no location info>: warning:
+<no location info>: warning: [-Wunclassified (in -Wdefault)]
Cannot eta expand ‘coerce’
The following type does not have a fixed runtime representation:
• a :: TYPE q
diff --git a/testsuite/tests/corelint/T21115b.stderr b/testsuite/tests/corelint/T21115b.stderr
index 199b999f1f..09671ceecd 100644
--- a/testsuite/tests/corelint/T21115b.stderr
+++ b/testsuite/tests/corelint/T21115b.stderr
@@ -1,5 +1,5 @@
*** Core Lint errors : in result of Desugar (before optimization) ***
-T21115b.hs:9:1: warning:
+T21115b.hs:9:1: warning: [-Wunclassified (in -Wdefault)]
Lint warning: Scrutinising floating-point expression with literal pattern in case analysis (see #9238).
scrut ds
In the RHS of foo :: Double# -> Int#
diff --git a/testsuite/tests/deSugar/should_compile/T13290.stderr b/testsuite/tests/deSugar/should_compile/T13290.stderr
index 013f5ad97b..92638be1f9 100644
--- a/testsuite/tests/deSugar/should_compile/T13290.stderr
+++ b/testsuite/tests/deSugar/should_compile/T13290.stderr
@@ -1,4 +1,4 @@
-T13290.hs:6:1: warning: [GHC-00828]
+T13290.hs:6:1: warning: [GHC-00828] [-Wunclassified (in -Wdefault)]
A constructor, Bar, appears as outermost match in RULE lhs.
This rule will be ignored.
diff --git a/testsuite/tests/dependent/should_compile/T14066a.stderr b/testsuite/tests/dependent/should_compile/T14066a.stderr
index 3f3c88a3e6..af468555fd 100644
--- a/testsuite/tests/dependent/should_compile/T14066a.stderr
+++ b/testsuite/tests/dependent/should_compile/T14066a.stderr
@@ -1,5 +1,5 @@
-T14066a.hs:14:3: warning:
+T14066a.hs:14:3: warning: [-Wunclassified (in -Wdefault)]
Type family instance equation is overlapped:
forall {c} {x :: c} {d} {y :: d}.
Bar x y = Bool -- Defined at T14066a.hs:14:3
diff --git a/testsuite/tests/driver/T20436/T20436.stderr b/testsuite/tests/driver/T20436/T20436.stderr
index 1fda220263..13f261283f 100644
--- a/testsuite/tests/driver/T20436/T20436.stderr
+++ b/testsuite/tests/driver/T20436/T20436.stderr
@@ -1,3 +1,3 @@
-when making flags consistent: warning:
+when making flags consistent: warning: [-Wunclassified (in -Wdefault)]
-dynamic-too is ignored when using -dynamic
diff --git a/testsuite/tests/ghc-api/T10052/T10052.stderr b/testsuite/tests/ghc-api/T10052/T10052.stderr
index 14d76b9f49..06609ebb1a 100644
--- a/testsuite/tests/ghc-api/T10052/T10052.stderr
+++ b/testsuite/tests/ghc-api/T10052/T10052.stderr
@@ -1,3 +1,3 @@
-when making flags consistent: warning:
+when making flags consistent: warning: [-Wunclassified]
Optimization flags are incompatible with the byte-code interpreter; optimization flags ignored.
diff --git a/testsuite/tests/ghci.debugger/scripts/print007.stderr b/testsuite/tests/ghci.debugger/scripts/print007.stderr
index 14d76b9f49..077c917c27 100644
--- a/testsuite/tests/ghci.debugger/scripts/print007.stderr
+++ b/testsuite/tests/ghci.debugger/scripts/print007.stderr
@@ -1,3 +1,3 @@
-when making flags consistent: warning:
+when making flags consistent: warning: [-Wunclassified (in -Wdefault)]
Optimization flags are incompatible with the byte-code interpreter; optimization flags ignored.
diff --git a/testsuite/tests/ghci/scripts/StaticPtr.stderr b/testsuite/tests/ghci/scripts/StaticPtr.stderr
index 7975283219..46a7e5c598 100644
--- a/testsuite/tests/ghci/scripts/StaticPtr.stderr
+++ b/testsuite/tests/ghci/scripts/StaticPtr.stderr
@@ -1,3 +1,3 @@
-<interactive>: warning: [GHC-77799]
+<interactive>: warning: [GHC-77799] [-Wunclassified (in -Wdefault)]
StaticPointers is not supported in GHCi interactive expressions.
diff --git a/testsuite/tests/ghci/should_fail/T10549.stderr b/testsuite/tests/ghci/should_fail/T10549.stderr
index 14d76b9f49..077c917c27 100644
--- a/testsuite/tests/ghci/should_fail/T10549.stderr
+++ b/testsuite/tests/ghci/should_fail/T10549.stderr
@@ -1,3 +1,3 @@
-when making flags consistent: warning:
+when making flags consistent: warning: [-Wunclassified (in -Wdefault)]
Optimization flags are incompatible with the byte-code interpreter; optimization flags ignored.
diff --git a/testsuite/tests/ghci/should_fail/T10549a.stderr b/testsuite/tests/ghci/should_fail/T10549a.stderr
index 14d76b9f49..077c917c27 100644
--- a/testsuite/tests/ghci/should_fail/T10549a.stderr
+++ b/testsuite/tests/ghci/should_fail/T10549a.stderr
@@ -1,3 +1,3 @@
-when making flags consistent: warning:
+when making flags consistent: warning: [-Wunclassified (in -Wdefault)]
Optimization flags are incompatible with the byte-code interpreter; optimization flags ignored.
diff --git a/testsuite/tests/indexed-types/should_compile/T9085.stderr b/testsuite/tests/indexed-types/should_compile/T9085.stderr
index 79ecd91e28..52e5152d87 100644
--- a/testsuite/tests/indexed-types/should_compile/T9085.stderr
+++ b/testsuite/tests/indexed-types/should_compile/T9085.stderr
@@ -1,4 +1,4 @@
-T9085.hs:7:3: Warning:
+T9085.hs:7:3: warning: [-Wunclassified (in -Wdefault)]
Type family instance equation is overlapped:
F Bool = Bool -- Defined at T9085.hs:7:3
diff --git a/testsuite/tests/parser/should_compile/OpaqueParseWarn1.stderr b/testsuite/tests/parser/should_compile/OpaqueParseWarn1.stderr
index 01f62eb39d..8a34329a24 100644
--- a/testsuite/tests/parser/should_compile/OpaqueParseWarn1.stderr
+++ b/testsuite/tests/parser/should_compile/OpaqueParseWarn1.stderr
@@ -1,3 +1,3 @@
-OpaqueParseWarn1.hs:6:1: warning: [GHC-38524]
+OpaqueParseWarn1.hs:6:1: warning: [GHC-38524] [-Wunclassified (in -Wdefault)]
Ignoring useless SPECIALISE pragma for NOINLINE function: ‘f’
diff --git a/testsuite/tests/plugins/T19926.stderr b/testsuite/tests/plugins/T19926.stderr
index e454ba4543..6577e67e5f 100644
--- a/testsuite/tests/plugins/T19926.stderr
+++ b/testsuite/tests/plugins/T19926.stderr
@@ -2,5 +2,5 @@
T19926.hs:3:17: warning: [-Wunsafe]
‘T19926’ has been inferred as unsafe!
Reason:
- <no location info>: warning: [GHC-01687]
+ <no location info>: warning: [GHC-01687] [-Wunclassified (in -Wdefault)]
Use of plugins makes the module unsafe
diff --git a/testsuite/tests/pmcheck/should_compile/TooManyDeltas.stderr b/testsuite/tests/pmcheck/should_compile/TooManyDeltas.stderr
index b6092fa8ec..5a180e6acc 100644
--- a/testsuite/tests/pmcheck/should_compile/TooManyDeltas.stderr
+++ b/testsuite/tests/pmcheck/should_compile/TooManyDeltas.stderr
@@ -3,7 +3,7 @@ TooManyDeltas.hs:14:1: warning: [GHC-62161] [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘f’: Patterns of type ‘T’, ‘T’ not matched: _ _
-TooManyDeltas.hs:14:1: warning: [GHC-61505]
+TooManyDeltas.hs:14:1: warning: [GHC-61505] [-Wunclassified (in -Wdefault)]
Pattern match checker ran into -fmax-pmcheck-models=0 limit, so
• Redundant clauses might not be reported at all
• Redundant clauses might be reported as inaccessible
@@ -11,7 +11,7 @@ TooManyDeltas.hs:14:1: warning: [GHC-61505]
Suggested fix:
Increase the limit or resolve the warnings to suppress this message.
-TooManyDeltas.hs:19:1: warning: [GHC-61505]
+TooManyDeltas.hs:19:1: warning: [GHC-61505] [-Wunclassified (in -Wdefault)]
Pattern match checker ran into -fmax-pmcheck-models=0 limit, so
• Redundant clauses might not be reported at all
• Redundant clauses might be reported as inaccessible
diff --git a/testsuite/tests/rename/should_compile/rn049.stderr b/testsuite/tests/rename/should_compile/rn049.stderr
index 5c13eb3936..6812c2a2db 100644
--- a/testsuite/tests/rename/should_compile/rn049.stderr
+++ b/testsuite/tests/rename/should_compile/rn049.stderr
@@ -1,5 +1,5 @@
-rn049.hs:12:6: warning: [GHC-59119]
+rn049.hs:12:6: warning: [GHC-59119] [-Wunclassified (in -Wdefault)]
accepting non-standard pattern guards
x <- 1 * 2 + 3 * 4
Suggested fix: Perhaps you intended to use PatternGuards
diff --git a/testsuite/tests/safeHaskell/check/Check05.stderr b/testsuite/tests/safeHaskell/check/Check05.stderr
index c14f8c02b2..37fe038460 100644
--- a/testsuite/tests/safeHaskell/check/Check05.stderr
+++ b/testsuite/tests/safeHaskell/check/Check05.stderr
@@ -1,3 +1,3 @@
-Check05.hs:1:17:
- Warning: -fpackage-trust ignored; must be specified with a Safe Haskell flag
+Check05.hs:1:17: warning: [-Wunclassified (in -Wdefault)]
+ -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 603cb636a7..7277dafff3 100644
--- a/testsuite/tests/safeHaskell/flags/SafeFlags18.stderr
+++ b/testsuite/tests/safeHaskell/flags/SafeFlags18.stderr
@@ -1,3 +1,3 @@
-SafeFlags18.hs:1:17: error: [-Werror]
+SafeFlags18.hs:1:17: error: [-Wunclassified (in -Wdefault), Werror=unclassified]
-fpackage-trust ignored; must be specified with a Safe Haskell flag
diff --git a/testsuite/tests/safeHaskell/ghci/p1.stderr b/testsuite/tests/safeHaskell/ghci/p1.stderr
index 9446e1df16..f6e0c180e2 100644
--- a/testsuite/tests/safeHaskell/ghci/p1.stderr
+++ b/testsuite/tests/safeHaskell/ghci/p1.stderr
@@ -1,6 +1,6 @@
-<no location info>: Warning:
+<no location info>: warning: [-Wunclassified (in -Wdefault)]
-XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell
-<no location info>: Warning:
+<no location info>: warning: [-Wunclassified (in -Wdefault)]
-XGeneralizedNewtypeDeriving is not allowed in Safe Haskell; ignoring -XGeneralizedNewtypeDeriving
diff --git a/testsuite/tests/safeHaskell/ghci/p14.stderr b/testsuite/tests/safeHaskell/ghci/p14.stderr
index 0f6f65975c..8fb2fec39c 100644
--- a/testsuite/tests/safeHaskell/ghci/p14.stderr
+++ b/testsuite/tests/safeHaskell/ghci/p14.stderr
@@ -1,5 +1,5 @@
-when making flags consistent: warning:
+when making flags consistent: warning: [-Wunclassified (in -Wdefault)]
Optimization flags are incompatible with the byte-code interpreter; optimization flags ignored.
<interactive>:10:25: error: [GHC-39999]
diff --git a/testsuite/tests/safeHaskell/ghci/p16.stderr b/testsuite/tests/safeHaskell/ghci/p16.stderr
index f915af1f1b..7f4e8102eb 100644
--- a/testsuite/tests/safeHaskell/ghci/p16.stderr
+++ b/testsuite/tests/safeHaskell/ghci/p16.stderr
@@ -1,5 +1,5 @@
-<no location info>: warning:
+<no location info>: warning: [-Wunclassified (in -Wdefault)]
-XGeneralizedNewtypeDeriving is not allowed in Safe Haskell; ignoring -XGeneralizedNewtypeDeriving
<interactive>:16:29: error: [GHC-82023]
diff --git a/testsuite/tests/safeHaskell/overlapping/SH_Overlap11.stderr b/testsuite/tests/safeHaskell/overlapping/SH_Overlap11.stderr
index 7d9acc9552..0f63175da6 100644
--- a/testsuite/tests/safeHaskell/overlapping/SH_Overlap11.stderr
+++ b/testsuite/tests/safeHaskell/overlapping/SH_Overlap11.stderr
@@ -5,7 +5,7 @@
SH_Overlap11.hs:2:17: warning: [-Wunsafe]
‘SH_Overlap11’ has been inferred as unsafe!
Reason:
- SH_Overlap11.hs:18:8: warning: [GHC-36705]
+ SH_Overlap11.hs:18:8: warning: [GHC-36705] [-Wunclassified (in -Wdefault)]
• Unsafe overlapping instances for C [Int]
arising from a use of ‘f’
The matching instance is:
diff --git a/testsuite/tests/safeHaskell/overlapping/SH_Overlap7.stderr b/testsuite/tests/safeHaskell/overlapping/SH_Overlap7.stderr
index 3a719cb0b4..95b0a16dcd 100644
--- a/testsuite/tests/safeHaskell/overlapping/SH_Overlap7.stderr
+++ b/testsuite/tests/safeHaskell/overlapping/SH_Overlap7.stderr
@@ -5,7 +5,7 @@
SH_Overlap7.hs:2:17: error: [-Wunsafe, Werror=unsafe]
‘SH_Overlap7’ has been inferred as unsafe!
Reason:
- SH_Overlap7.hs:15:8: error: [GHC-36705] [-Werror]
+ SH_Overlap7.hs:15:8: error: [GHC-36705] [-Wunclassified (in -Wdefault), Werror=unclassified]
• Unsafe overlapping instances for C [Int]
arising from a use of ‘f’
The matching instance is:
diff --git a/testsuite/tests/safeHaskell/safeInfered/UnsafeInfered11.stderr b/testsuite/tests/safeHaskell/safeInfered/UnsafeInfered11.stderr
index 9b7e910d91..3091846410 100644
--- a/testsuite/tests/safeHaskell/safeInfered/UnsafeInfered11.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/UnsafeInfered11.stderr
@@ -2,7 +2,7 @@
UnsafeInfered11_A.hs:2:17: warning: [-Wunsafe]
‘UnsafeInfered11_A’ has been inferred as unsafe!
Reason:
- UnsafeInfered11_A.hs:18:11: warning: [GHC-56147]
+ UnsafeInfered11_A.hs:18:11: warning: [GHC-56147] [-Wunclassified (in -Wdefault)]
Rule "lookupx/T" ignored
Defining user rules is disabled under Safe Haskell
diff --git a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn05.stderr b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn05.stderr
index 3d07f34867..a7402b8e1c 100644
--- a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn05.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn05.stderr
@@ -9,6 +9,6 @@ UnsafeWarn05.hs:5:17: warning: [-Wunsafe]
UnsafeWarn05.hs:5:17: warning: [-Wunsafe]
‘UnsafeWarn05’ has been inferred as unsafe!
Reason:
- UnsafeWarn05.hs:16:11: warning: [GHC-56147]
+ UnsafeWarn05.hs:16:11: warning: [GHC-56147] [-Wunclassified (in -Wdefault)]
Rule "g" ignored
Defining user rules is disabled under Safe Haskell
diff --git a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn06.stderr b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn06.stderr
index d1a64dc4fe..96bac51c9a 100644
--- a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn06.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn06.stderr
@@ -2,6 +2,6 @@
UnsafeWarn06.hs:4:17: warning: [-Wunsafe]
‘UnsafeWarn06’ has been inferred as unsafe!
Reason:
- UnsafeWarn06.hs:9:11: warning: [GHC-56147]
+ UnsafeWarn06.hs:9:11: warning: [GHC-56147] [-Wunclassified (in -Wdefault)]
Rule "f" ignored
Defining user rules is disabled under Safe Haskell
diff --git a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn07.stderr b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn07.stderr
index 88f5e4ea5d..27d395650c 100644
--- a/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn07.stderr
+++ b/testsuite/tests/safeHaskell/safeInfered/UnsafeWarn07.stderr
@@ -2,6 +2,6 @@
UnsafeWarn07.hs:5:17: warning: [-Wunsafe]
‘UnsafeWarn07’ has been inferred as unsafe!
Reason:
- UnsafeWarn07.hs:10:11: warning: [GHC-56147]
+ UnsafeWarn07.hs:10:11: warning: [GHC-56147] [-Wunclassified (in -Wdefault)]
Rule "f" ignored
Defining user rules is disabled under Safe Haskell
diff --git a/testsuite/tests/safeHaskell/safeLanguage/SafeLang01.stderr b/testsuite/tests/safeHaskell/safeLanguage/SafeLang01.stderr
index 1fb5ec66bb..fb4764aad1 100644
--- a/testsuite/tests/safeHaskell/safeLanguage/SafeLang01.stderr
+++ b/testsuite/tests/safeHaskell/safeLanguage/SafeLang01.stderr
@@ -1,3 +1,3 @@
-SafeLang01.hs:2:20: warning:
+SafeLang01.hs:2:20: warning: [-Wunclassified (in -Wdefault)]
-XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell
diff --git a/testsuite/tests/safeHaskell/safeLanguage/SafeLang02.stderr b/testsuite/tests/safeHaskell/safeLanguage/SafeLang02.stderr
index 069e5be4e9..ab1fe79d35 100644
--- a/testsuite/tests/safeHaskell/safeLanguage/SafeLang02.stderr
+++ b/testsuite/tests/safeHaskell/safeLanguage/SafeLang02.stderr
@@ -1,3 +1,3 @@
-SafeLang02.hs:1:20:
- Warning: -XGeneralizedNewtypeDeriving is not allowed in Safe Haskell; ignoring -XGeneralizedNewtypeDeriving
+SafeLang02.hs:1:20: warning: [-Wunclassified (in -Wdefault)]
+ -XGeneralizedNewtypeDeriving is not allowed in Safe Haskell; ignoring -XGeneralizedNewtypeDeriving
diff --git a/testsuite/tests/safeHaskell/safeLanguage/SafeLang03.stderr b/testsuite/tests/safeHaskell/safeLanguage/SafeLang03.stderr
index 353c1bb45e..732c2bd03d 100644
--- a/testsuite/tests/safeHaskell/safeLanguage/SafeLang03.stderr
+++ b/testsuite/tests/safeHaskell/safeLanguage/SafeLang03.stderr
@@ -1,4 +1,4 @@
-SafeLang03.hs:8:11: warning: [GHC-56147]
+SafeLang03.hs:8:11: warning: [GHC-56147] [-Wunclassified (in -Wdefault)]
Rule "f" ignored
Defining user rules is disabled under Safe Haskell
diff --git a/testsuite/tests/safeHaskell/safeLanguage/SafeLang07.stderr b/testsuite/tests/safeHaskell/safeLanguage/SafeLang07.stderr
index acfb8de460..939f284ec1 100644
--- a/testsuite/tests/safeHaskell/safeLanguage/SafeLang07.stderr
+++ b/testsuite/tests/safeHaskell/safeLanguage/SafeLang07.stderr
@@ -1,5 +1,5 @@
-SafeLang07.hs:2:14: warning:
+SafeLang07.hs:2:14: warning: [-Wunclassified (in -Wdefault)]
-XGeneralizedNewtypeDeriving is not allowed in Safe Haskell; ignoring -XGeneralizedNewtypeDeriving
SafeLang07.hs:15:1: error:
diff --git a/testsuite/tests/safeHaskell/safeLanguage/SafeLang12.stderr b/testsuite/tests/safeHaskell/safeLanguage/SafeLang12.stderr
index 2239f73d8f..ef310aa591 100644
--- a/testsuite/tests/safeHaskell/safeLanguage/SafeLang12.stderr
+++ b/testsuite/tests/safeHaskell/safeLanguage/SafeLang12.stderr
@@ -1,8 +1,8 @@
-SafeLang12.hs:3:14: warning:
+SafeLang12.hs:3:14: warning: [-Wunclassified (in -Wdefault)]
-XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell
-SafeLang12_B.hs:3:14: warning:
+SafeLang12_B.hs:3:14: warning: [-Wunclassified (in -Wdefault)]
-XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell
[1 of 4] Compiling SafeLang12_A ( SafeLang12_A.hs, SafeLang12_A.o )
[2 of 4] Compiling SafeLang12_B ( SafeLang12_B.hs, SafeLang12_B.o )
diff --git a/testsuite/tests/safeHaskell/safeLanguage/SafeLang16.stderr b/testsuite/tests/safeHaskell/safeLanguage/SafeLang16.stderr
index 5aaab72d8a..f215c72cdf 100644
--- a/testsuite/tests/safeHaskell/safeLanguage/SafeLang16.stderr
+++ b/testsuite/tests/safeHaskell/safeLanguage/SafeLang16.stderr
@@ -1,3 +1,3 @@
-SafeLang16.hs:2:14: warning:
+SafeLang16.hs:2:14: warning: [-Wunclassified (in -Wdefault)]
-XTemplateHaskell is not allowed in Safe Haskell; ignoring -XTemplateHaskell
diff --git a/testsuite/tests/safeHaskell/safeLanguage/SafeLang19.stderr b/testsuite/tests/safeHaskell/safeLanguage/SafeLang19.stderr
index 1dbe65d156..dec82d9535 100644
--- a/testsuite/tests/safeHaskell/safeLanguage/SafeLang19.stderr
+++ b/testsuite/tests/safeHaskell/safeLanguage/SafeLang19.stderr
@@ -1,3 +1,3 @@
-SafeLang19.hs:2:20: warning:
+SafeLang19.hs:2:20: warning: [-Wunclassified (in -Wdefault)]
-XDerivingVia is not allowed in Safe Haskell; ignoring -XDerivingVia
diff --git a/testsuite/tests/simplCore/should_compile/T4398.stderr b/testsuite/tests/simplCore/should_compile/T4398.stderr
index 04b2db98e6..a80fd6e40a 100644
--- a/testsuite/tests/simplCore/should_compile/T4398.stderr
+++ b/testsuite/tests/simplCore/should_compile/T4398.stderr
@@ -1,5 +1,5 @@
-T4398.hs:6:11: warning: [GHC-40548]
+T4398.hs:6:11: warning: [GHC-40548] [-Wunclassified (in -Wdefault)]
Forall'd constraint ‘Ord a’ is not bound in RULE lhs
Orig bndrs: [a, $dOrd, x, y]
Orig lhs: f @a ((\ ($dOrd :: Ord a) -> x) $dOrd) y
diff --git a/testsuite/tests/simplCore/should_compile/T8537.stderr b/testsuite/tests/simplCore/should_compile/T8537.stderr
index 8d85318f06..427ac9818c 100644
--- a/testsuite/tests/simplCore/should_compile/T8537.stderr
+++ b/testsuite/tests/simplCore/should_compile/T8537.stderr
@@ -1,3 +1,3 @@
-T8537.hs:20:5: warning: [GHC-35827]
+T8537.hs:20:5: warning: [GHC-35827] [-Wunclassified (in -Wdefault)]
SPECIALISE pragma for non-overloaded function ‘fmap’
diff --git a/testsuite/tests/simplCore/should_compile/simpl016.stderr b/testsuite/tests/simplCore/should_compile/simpl016.stderr
index 75f9072d55..60272a626f 100644
--- a/testsuite/tests/simplCore/should_compile/simpl016.stderr
+++ b/testsuite/tests/simplCore/should_compile/simpl016.stderr
@@ -1,5 +1,5 @@
-simpl016.hs:7:1: warning: [GHC-40548]
+simpl016.hs:7:1: warning: [GHC-40548] [-Wunclassified (in -Wdefault)]
Forall'd constraint ‘Num b’ is not bound in RULE lhs
Orig bndrs: [b, $dNum]
Orig lhs: let {
diff --git a/testsuite/tests/stage1/T13609.stderr b/testsuite/tests/stage1/T13609.stderr
index 8be57f385a..ee2a99a168 100644
--- a/testsuite/tests/stage1/T13609.stderr
+++ b/testsuite/tests/stage1/T13609.stderr
@@ -1,3 +1,3 @@
-T13609.hs:3:1: warning: [GHC-66649]
+T13609.hs:3:1: warning: [GHC-66649] [-Wunclassified (in -Wdefault)]
Ignoring ANN annotation, because this is a stage-1 compiler without -fexternal-interpreter or doesn't support GHCi
diff --git a/testsuite/tests/th/ClosedFam1TH.stderr b/testsuite/tests/th/ClosedFam1TH.stderr
index bc00cc8eff..e364ebdf9e 100644
--- a/testsuite/tests/th/ClosedFam1TH.stderr
+++ b/testsuite/tests/th/ClosedFam1TH.stderr
@@ -1,5 +1,5 @@
-ClosedFam1TH.hs:7:2: warning: [GHC-39584]
+ClosedFam1TH.hs:7:2: warning: [GHC-39584] [-Wunclassified (in -Wdefault)]
type family Foo_0 a_1 (b_2 :: k_3) where
Foo_0 GHC.Types.Int GHC.Types.Bool = GHC.Types.Int
Foo_0 a_4 GHC.Maybe.Maybe = GHC.Types.Bool
diff --git a/testsuite/tests/th/T7477.stderr b/testsuite/tests/th/T7477.stderr
index 0fd6f4fc3b..3ed8dab09c 100644
--- a/testsuite/tests/th/T7477.stderr
+++ b/testsuite/tests/th/T7477.stderr
@@ -1,3 +1,3 @@
-T7477.hs:10:2: warning: [GHC-39584]
+T7477.hs:10:2: warning: [GHC-39584] [-Wunclassified (in -Wdefault)]
type instance T7477.F GHC.Types.Int = GHC.Types.Bool
diff --git a/testsuite/tests/th/T8333.stderr b/testsuite/tests/th/T8333.stderr
index 14d76b9f49..077c917c27 100644
--- a/testsuite/tests/th/T8333.stderr
+++ b/testsuite/tests/th/T8333.stderr
@@ -1,3 +1,3 @@
-when making flags consistent: warning:
+when making flags consistent: warning: [-Wunclassified (in -Wdefault)]
Optimization flags are incompatible with the byte-code interpreter; optimization flags ignored.
diff --git a/testsuite/tests/th/T8759.stderr b/testsuite/tests/th/T8759.stderr
index 2e551478ae..67b284ef45 100644
--- a/testsuite/tests/th/T8759.stderr
+++ b/testsuite/tests/th/T8759.stderr
@@ -1,3 +1,3 @@
-T8759.hs:9:2: warning: [GHC-39584]
+T8759.hs:9:2: warning: [GHC-39584] [-Wunclassified (in -Wdefault)]
PatSynI T8759.P (ForallT [] [] (ForallT [] [] (TupleT 0)))
diff --git a/testsuite/tests/th/TH_PromotedList.stderr b/testsuite/tests/th/TH_PromotedList.stderr
index 093924b3ae..529f035681 100644
--- a/testsuite/tests/th/TH_PromotedList.stderr
+++ b/testsuite/tests/th/TH_PromotedList.stderr
@@ -1,3 +1,3 @@
-TH_PromotedList.hs:11:2: warning: [GHC-39584]
+TH_PromotedList.hs:11:2: warning: [GHC-39584] [-Wunclassified (in -Wdefault)]
'(:) GHC.Types.Int ('(:) GHC.Types.Bool '[])
diff --git a/testsuite/tests/th/TH_PromotedTuple.stderr b/testsuite/tests/th/TH_PromotedTuple.stderr
index 4579f76c2b..20ace33c60 100644
--- a/testsuite/tests/th/TH_PromotedTuple.stderr
+++ b/testsuite/tests/th/TH_PromotedTuple.stderr
@@ -5,5 +5,5 @@ TH_PromotedTuple.hs:(14,31)-(16,44): Splicing type
======>
'(Int, 'False)
-TH_PromotedTuple.hs:14:31: warning: [GHC-39584]
+TH_PromotedTuple.hs:14:31: warning: [GHC-39584] [-Wunclassified (in -Wdefault)]
AppT (AppT (PromotedTupleT 2) (ConT GHC.Types.Int)) (PromotedT GHC.Types.False)
diff --git a/testsuite/tests/th/TH_RichKinds.stderr b/testsuite/tests/th/TH_RichKinds.stderr
index cb8cbb9f34..d50a8a7a96 100644
--- a/testsuite/tests/th/TH_RichKinds.stderr
+++ b/testsuite/tests/th/TH_RichKinds.stderr
@@ -1,5 +1,5 @@
-TH_RichKinds.hs:12:2: warning: [GHC-39584]
+TH_RichKinds.hs:12:2: warning: [GHC-39584] [-Wunclassified (in -Wdefault)]
forall a_0 . (a_0 :: GHC.Types.Bool)
forall a_1 . (a_1 :: Constraint)
forall a_2 . (a_2 :: [*])
diff --git a/testsuite/tests/th/TH_RichKinds2.stderr b/testsuite/tests/th/TH_RichKinds2.stderr
index 89b7279114..3f983599d3 100644
--- a/testsuite/tests/th/TH_RichKinds2.stderr
+++ b/testsuite/tests/th/TH_RichKinds2.stderr
@@ -1,5 +1,5 @@
-TH_RichKinds2.hs:25:2: warning: [GHC-39584]
+TH_RichKinds2.hs:25:2: warning: [GHC-39584] [-Wunclassified (in -Wdefault)]
data SMaybe_0 :: (k_0 -> *) -> GHC.Maybe.Maybe k_0 -> * where
SNothing_2 :: SMaybe_0 s_3 'GHC.Maybe.Nothing
SJust_4 :: (s_5 a_6) -> SMaybe_0 s_5 ('GHC.Maybe.Just a_6)
diff --git a/testsuite/tests/th/TH_TyInstWhere2.stderr b/testsuite/tests/th/TH_TyInstWhere2.stderr
index b0827881d5..7d540ce3dc 100644
--- a/testsuite/tests/th/TH_TyInstWhere2.stderr
+++ b/testsuite/tests/th/TH_TyInstWhere2.stderr
@@ -1,10 +1,10 @@
-TH_TyInstWhere2.hs:8:2: warning: [GHC-39584]
+TH_TyInstWhere2.hs:8:2: warning: [GHC-39584] [-Wunclassified (in -Wdefault)]
type family F_0 (a_1 :: k_2) (b_3 :: k_2) :: GHC.Types.Bool where
F_0 a_4 a_4 = 'GHC.Types.True
F_0 a_5 b_6 = 'GHC.Types.False
-TH_TyInstWhere2.hs:14:2: warning: [GHC-39584]
+TH_TyInstWhere2.hs:14:2: warning: [GHC-39584] [-Wunclassified (in -Wdefault)]
type family F1_0 (a_1 :: k_2) :: * where
F1_0 @(*) GHC.Types.Int = GHC.Types.Bool
F1_0 @GHC.Types.Bool 'GHC.Types.False = GHC.Types.Char
diff --git a/testsuite/tests/th/TH_finalizer.stderr b/testsuite/tests/th/TH_finalizer.stderr
index dedb26ff3f..55d8bc0794 100644
--- a/testsuite/tests/th/TH_finalizer.stderr
+++ b/testsuite/tests/th/TH_finalizer.stderr
@@ -1,2 +1,3 @@
-TH_finalizer.hs:1:1: warning: [GHC-39584] Just True
+TH_finalizer.hs:1:1: warning: [GHC-39584] [-Wunclassified (in -Wdefault)]
+ Just True
diff --git a/testsuite/tests/typecheck/should_compile/T10504.stderr b/testsuite/tests/typecheck/should_compile/T10504.stderr
index ed8b83514b..b8855a114a 100644
--- a/testsuite/tests/typecheck/should_compile/T10504.stderr
+++ b/testsuite/tests/typecheck/should_compile/T10504.stderr
@@ -1,3 +1,3 @@
-T10504.hs:5:1: warning: [GHC-35827]
+T10504.hs:5:1: warning: [GHC-35827] [-Wunclassified (in -Wdefault)]
SPECIALISE pragma for non-overloaded function ‘myfun’
diff --git a/testsuite/tests/typecheck/should_compile/T6018.stderr b/testsuite/tests/typecheck/should_compile/T6018.stderr
index 9423a0e706..71768c9cf0 100644
--- a/testsuite/tests/typecheck/should_compile/T6018.stderr
+++ b/testsuite/tests/typecheck/should_compile/T6018.stderr
@@ -2,10 +2,10 @@
[2 of 3] Compiling T6018a ( T6018a.hs, T6018a.o )
[3 of 3] Compiling T6018 ( T6018.hs, T6018.o )
-T6018.hs:109:5: warning:
+T6018.hs:109:5: warning: [-Wunclassified (in -Wdefault)]
Type family instance equation is overlapped:
Foo Bool = Bool -- Defined at T6018.hs:109:5
-T6018.hs:116:5: warning:
+T6018.hs:116:5: warning: [-Wunclassified (in -Wdefault)]
Type family instance equation is overlapped:
Bar Bool = Char -- Defined at T6018.hs:116:5
diff --git a/testsuite/tests/typecheck/should_compile/T7050.stderr b/testsuite/tests/typecheck/should_compile/T7050.stderr
index e115954bc8..dfd9539339 100644
--- a/testsuite/tests/typecheck/should_compile/T7050.stderr
+++ b/testsuite/tests/typecheck/should_compile/T7050.stderr
@@ -1,5 +1,5 @@
-T7050.hs:3:14: warning:
+T7050.hs:3:14: warning: [-Wunclassified (in -Wdefault)]
• Ignoring unusable UNPACK pragma on the first argument of ‘Foo’
• In the definition of data constructor ‘Foo’
In the data type declaration for ‘Foo’
diff --git a/testsuite/tests/typecheck/should_compile/T7562.stderr b/testsuite/tests/typecheck/should_compile/T7562.stderr
index 9c1b846b91..156689cecb 100644
--- a/testsuite/tests/typecheck/should_compile/T7562.stderr
+++ b/testsuite/tests/typecheck/should_compile/T7562.stderr
@@ -1,5 +1,5 @@
-T7562.hs:3:14: warning:
+T7562.hs:3:14: warning: [-Wunclassified (in -Wdefault)]
• UNPACK pragma lacks '!' on the first argument of ‘Pair2’
• In the definition of data constructor ‘Pair2’
In the data type declaration for ‘Pair2’
diff --git a/testsuite/tests/typecheck/should_compile/tc265.stderr b/testsuite/tests/typecheck/should_compile/tc265.stderr
index 24aeed0392..ff36184b7b 100644
--- a/testsuite/tests/typecheck/should_compile/tc265.stderr
+++ b/testsuite/tests/typecheck/should_compile/tc265.stderr
@@ -1,4 +1,4 @@
-tc265.hs:8:3: warning:
+tc265.hs:8:3: warning: [-Wunclassified (in -Wdefault)]
Type family instance equation is overlapped:
F (T Int) = Bool -- Defined at tc265.hs:8:3
diff --git a/testsuite/tests/typecheck/should_fail/T14761a.stderr b/testsuite/tests/typecheck/should_fail/T14761a.stderr
index 867cf6dae6..03748a779d 100644
--- a/testsuite/tests/typecheck/should_fail/T14761a.stderr
+++ b/testsuite/tests/typecheck/should_fail/T14761a.stderr
@@ -1,15 +1,15 @@
-T14761a.hs:13:10: error: [-Werror]
+T14761a.hs:13:10: error: [-Wunclassified (in -Wdefault), Werror=unclassified]
• UNPACK pragma lacks '!' on the first argument of ‘A’
• In the definition of data constructor ‘A’
In the data type declaration for ‘A’
-T14761a.hs:17:10: error: [-Werror]
+T14761a.hs:17:10: error: [-Wunclassified (in -Wdefault), Werror=unclassified]
• UNPACK pragma lacks '!' on the first argument of ‘B’
• In the definition of data constructor ‘B’
In the data type declaration for ‘B’
-T14761a.hs:20:3: error: [-Werror]
+T14761a.hs:20:3: error: [-Wunclassified (in -Wdefault), Werror=unclassified]
• UNPACK pragma lacks '!' on the first argument of ‘MkG2’
• In the definition of data constructor ‘MkG2’
In the data type declaration for ‘G’
diff --git a/testsuite/tests/typecheck/should_fail/T3966.stderr b/testsuite/tests/typecheck/should_fail/T3966.stderr
index cab45c21e6..6c3a4735a2 100644
--- a/testsuite/tests/typecheck/should_fail/T3966.stderr
+++ b/testsuite/tests/typecheck/should_fail/T3966.stderr
@@ -1,5 +1,5 @@
-T3966.hs:5:16: error: [-Werror]
+T3966.hs:5:16: error: [-Wunclassified (in -Wdefault), Werror=unclassified]
• Ignoring unusable UNPACK pragma on the first argument of ‘Foo’
• In the definition of data constructor ‘Foo’
In the data type declaration for ‘Foo’
diff --git a/testsuite/tests/unboxedsums/unpack_sums_5.stderr b/testsuite/tests/unboxedsums/unpack_sums_5.stderr
index 96e786895a..450513b96b 100644
--- a/testsuite/tests/unboxedsums/unpack_sums_5.stderr
+++ b/testsuite/tests/unboxedsums/unpack_sums_5.stderr
@@ -1,10 +1,10 @@
-unpack_sums_5.hs:4:22: warning:
+unpack_sums_5.hs:4:22: warning: [-Wunclassified (in -Wdefault)]
• Ignoring unusable UNPACK pragma on the first argument of ‘JustT’
• In the definition of data constructor ‘JustT’
In the data type declaration for ‘SMaybeT’
-unpack_sums_5.hs:7:10: warning:
+unpack_sums_5.hs:7:10: warning: [-Wunclassified (in -Wdefault)]
• Ignoring unusable UNPACK pragma on the first argument of ‘MkT’
• In the definition of data constructor ‘MkT’
In the data type declaration for ‘T’
diff --git a/testsuite/tests/warnings/minimal/WarnMinimal.stderr b/testsuite/tests/warnings/minimal/WarnMinimal.stderr
index 06389aa3c6..7ea6f79815 100644
--- a/testsuite/tests/warnings/minimal/WarnMinimal.stderr
+++ b/testsuite/tests/warnings/minimal/WarnMinimal.stderr
@@ -24,19 +24,19 @@ WarnMinimal.hs:79:10: warning: [GHC-06201] [-Wmissing-methods (in -Wdefault)]
‘return'’ and (either (‘fmap'’ and ‘join'’) or ‘bind'’)
• In the instance declaration for ‘Monad' Id3’
-WarnMinimal.hs:84:1: warning: [GHC-13511]
+WarnMinimal.hs:84:1: warning: [GHC-13511] [-Wunclassified (in -Wdefault)]
• The MINIMAL pragma does not require:
‘cheater’
but there is no default implementation.
• In the class declaration for ‘Cheater’
-WarnMinimal.hs:88:1: warning: [GHC-13511]
+WarnMinimal.hs:88:1: warning: [GHC-13511] [-Wunclassified (in -Wdefault)]
• The MINIMAL pragma does not require:
‘_cheater2’
but there is no default implementation.
• In the class declaration for ‘Cheater2’
-WarnMinimal.hs:92:1: warning: [GHC-13511]
+WarnMinimal.hs:92:1: warning: [GHC-13511] [-Wunclassified (in -Wdefault)]
• The MINIMAL pragma does not require:
‘cheater3b’
but there is no default implementation.
diff --git a/testsuite/tests/warnings/should_compile/T19296.stderr b/testsuite/tests/warnings/should_compile/T19296.stderr
index 1fb1f7fe13..29dc7ef6c2 100644
--- a/testsuite/tests/warnings/should_compile/T19296.stderr
+++ b/testsuite/tests/warnings/should_compile/T19296.stderr
@@ -25,7 +25,7 @@ T19296.hs:13:6: warning: [GHC-30606] [-Wredundant-constraints]
13 | h :: (Eq a, Ord b) => a -> b -> b
| ^^^^^^^^^^^^^
-T19296.hs:21:1: warning: [GHC-40548]
+T19296.hs:21:1: warning: [GHC-40548] [-Wunclassified (in -Wdefault)]
Forall'd constraint ‘Eq a’ is not bound in RULE lhs
Orig bndrs: [a, $dEq]
Orig lhs: let {
diff --git a/testsuite/tests/warnings/should_compile/T22757.hs b/testsuite/tests/warnings/should_compile/T22757.hs
new file mode 100644
index 0000000000..2f954eed7c
--- /dev/null
+++ b/testsuite/tests/warnings/should_compile/T22757.hs
@@ -0,0 +1,7 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# OPTIONS_GHC -w #-}
+module T22757 where
+
+import Language.Haskell.TH
+
+reportWarning "should be suppressed" >> pure []
diff --git a/testsuite/tests/warnings/should_compile/all.T b/testsuite/tests/warnings/should_compile/all.T
index 9fe8b99787..29cf646185 100644
--- a/testsuite/tests/warnings/should_compile/all.T
+++ b/testsuite/tests/warnings/should_compile/all.T
@@ -56,3 +56,4 @@ test('T20312', normal, compile,['-Wall'])
test('T22151', normal, compile, ['-Wredundant-constraints'])
test('T22759', normal, compile, [''])
test('T22676', [extra_files(['src'])], multimod_compile, ['src.hs', '-working-dir src -Wmissing-home-modules -v0'])
+test('T22757', req_interp, compile, [''])