summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHerbert Valerio Riedel <hvr@gnu.org>2016-02-27 13:50:10 +0100
committerHerbert Valerio Riedel <hvr@gnu.org>2016-02-27 16:35:45 +0100
commitb9c697eefd34fcba3ab9c1f831baf7f651ad7503 (patch)
tree73dd59a223adc3f855da6613c0a99ed2e1fb6f77
parent3ee4fc04322dacb66c70262a220dce0f52c29d4f (diff)
downloadhaskell-b9c697eefd34fcba3ab9c1f831baf7f651ad7503.tar.gz
Print which flag controls emitted desugaring warnings
This is extends bb5afd3c274011c5ea302210b4c290ec1f83209c to cover warnings emitted during the desugaring phase. This implements another part of #10752 Reviewed-by: quchen, bgamari Differential Revision: https://phabricator.haskell.org/D1954
-rw-r--r--compiler/deSugar/Check.hs40
-rw-r--r--compiler/deSugar/Desugar.hs8
-rw-r--r--compiler/deSugar/DsBinds.hs12
-rw-r--r--compiler/deSugar/DsExpr.hs14
-rw-r--r--compiler/deSugar/DsMonad.hs15
-rw-r--r--compiler/deSugar/Match.hs2
-rw-r--r--compiler/deSugar/MatchLit.hs9
-rw-r--r--testsuite/tests/deSugar/should_compile/DsStrictWarn.stderr2
-rw-r--r--testsuite/tests/deSugar/should_compile/GadtOverlap.stderr2
-rw-r--r--testsuite/tests/deSugar/should_compile/T10662.stderr3
-rw-r--r--testsuite/tests/deSugar/should_compile/T2395.stderr2
-rw-r--r--testsuite/tests/deSugar/should_compile/T3263-1.stderr6
-rw-r--r--testsuite/tests/deSugar/should_compile/T3263-2.stderr6
-rw-r--r--testsuite/tests/deSugar/should_compile/T4488.stderr12
-rw-r--r--testsuite/tests/deSugar/should_compile/T5117.stderr2
-rw-r--r--testsuite/tests/deSugar/should_compile/T5455.stderr4
-rw-r--r--testsuite/tests/deSugar/should_compile/ds002.stderr6
-rw-r--r--testsuite/tests/deSugar/should_compile/ds003.stderr4
-rw-r--r--testsuite/tests/deSugar/should_compile/ds019.stderr6
-rw-r--r--testsuite/tests/deSugar/should_compile/ds020.stderr10
-rw-r--r--testsuite/tests/deSugar/should_compile/ds022.stderr4
-rw-r--r--testsuite/tests/deSugar/should_compile/ds043.stderr2
-rw-r--r--testsuite/tests/deSugar/should_compile/ds051.stderr6
-rw-r--r--testsuite/tests/deSugar/should_compile/ds056.stderr2
-rw-r--r--testsuite/tests/deSugar/should_compile/ds058.stderr2
-rw-r--r--testsuite/tests/dependent/should_compile/KindEqualities.stderr2
-rw-r--r--testsuite/tests/driver/werror.stderr4
-rw-r--r--testsuite/tests/gadt/T7294.stderr24
-rw-r--r--testsuite/tests/ghci/scripts/Defer02.stderr4
-rw-r--r--testsuite/tests/ghci/scripts/T3263.stderr3
-rw-r--r--testsuite/tests/numeric/should_compile/T10929.stderr9
-rw-r--r--testsuite/tests/numeric/should_compile/T7881.stderr9
-rw-r--r--testsuite/tests/numeric/should_compile/T7895.stderr4
-rw-r--r--testsuite/tests/numeric/should_compile/T8542.stderr4
-rw-r--r--testsuite/tests/pmcheck/should_compile/T11245.stderr8
-rw-r--r--testsuite/tests/pmcheck/should_compile/T2204.stderr5
-rw-r--r--testsuite/tests/pmcheck/should_compile/T9951b.stderr3
-rw-r--r--testsuite/tests/pmcheck/should_compile/pmc001.stderr5
-rw-r--r--testsuite/tests/pmcheck/should_compile/pmc003.stderr2
-rw-r--r--testsuite/tests/pmcheck/should_compile/pmc004.stderr2
-rw-r--r--testsuite/tests/pmcheck/should_compile/pmc005.stderr4
-rw-r--r--testsuite/tests/pmcheck/should_compile/pmc007.stderr7
-rw-r--r--testsuite/tests/simplCore/should_compile/T6082-RULE.stderr4
-rw-r--r--testsuite/tests/simplCore/should_compile/T7287.stderr2
-rw-r--r--testsuite/tests/th/TH_repUnboxedTuples.stderr2
-rw-r--r--testsuite/tests/typecheck/should_compile/T5490.stderr4
46 files changed, 154 insertions, 138 deletions
diff --git a/compiler/deSugar/Check.hs b/compiler/deSugar/Check.hs
index 8fa5414b72..fe1b4bc9a3 100644
--- a/compiler/deSugar/Check.hs
+++ b/compiler/deSugar/Check.hs
@@ -1242,15 +1242,19 @@ dsPmWarn dflags ctx@(DsMatchContext kind loc) pm_result
exists_i = flag_i && notNull inaccessible
exists_u = flag_u && notNull uncovered
when exists_r $ forM_ redundant $ \(L l q) -> do
- putSrcSpanDs l (warnDs (pprEqn q "is redundant"))
+ putSrcSpanDs l (warnDs (Reason Opt_WarnOverlappingPatterns)
+ (pprEqn q "is redundant"))
when exists_i $ forM_ inaccessible $ \(L l q) -> do
- putSrcSpanDs l (warnDs (pprEqn q "has inaccessible right hand side"))
- when exists_u $ putSrcSpanDs loc (warnDs (pprEqns uncovered))
+ putSrcSpanDs l (warnDs (Reason Opt_WarnOverlappingPatterns)
+ (pprEqn q "has inaccessible right hand side"))
+ when exists_u $
+ putSrcSpanDs loc (warnDs flag_u_reason (pprEqns uncovered))
where
(redundant, uncovered, inaccessible) = pm_result
flag_i = wopt Opt_WarnOverlappingPatterns dflags
flag_u = exhaustive dflags kind
+ flag_u_reason = maybe NoReason Reason (exhaustiveWarningFlag kind)
-- Print a single clause (for redundant/with-inaccessible-rhs)
pprEqn q txt = pp_context True ctx (text txt) $ \f -> ppr_eqn f kind q
@@ -1270,7 +1274,7 @@ warnPmIters :: DynFlags -> DsMatchContext -> PmM ()
warnPmIters dflags (DsMatchContext kind loc)
= when (flag_i || flag_u) $ do
iters <- maxPmCheckIterations <$> getDynFlags
- putSrcSpanDs loc (warnDs (msg iters))
+ putSrcSpanDs loc (warnDs NoReason (msg iters))
where
ctxt = pprMatchContext kind
msg is = fsep [ text "Pattern match checker exceeded"
@@ -1287,17 +1291,23 @@ dots qs | qs `lengthExceeds` maximum_output = text "..."
-- | Check whether the exhaustiveness checker should run (exhaustiveness only)
exhaustive :: DynFlags -> HsMatchContext id -> Bool
-exhaustive dflags (FunRhs {}) = wopt Opt_WarnIncompletePatterns dflags
-exhaustive dflags CaseAlt = wopt Opt_WarnIncompletePatterns dflags
-exhaustive _dflags IfAlt = False
-exhaustive dflags LambdaExpr = wopt Opt_WarnIncompleteUniPatterns dflags
-exhaustive dflags PatBindRhs = wopt Opt_WarnIncompleteUniPatterns dflags
-exhaustive dflags ProcExpr = wopt Opt_WarnIncompleteUniPatterns dflags
-exhaustive dflags RecUpd = wopt Opt_WarnIncompletePatternsRecUpd dflags
-exhaustive _dflags ThPatSplice = False
-exhaustive _dflags PatSyn = False
-exhaustive _dflags ThPatQuote = False
-exhaustive _dflags (StmtCtxt {}) = False -- Don't warn about incomplete patterns
+exhaustive dflags = maybe False (`wopt` dflags) . exhaustiveWarningFlag
+
+-- | Denotes whether an exhaustiveness check is supported, and if so,
+-- via which 'WarningFlag' it's controlled.
+-- Returns 'Nothing' if check is not supported.
+exhaustiveWarningFlag :: HsMatchContext id -> Maybe WarningFlag
+exhaustiveWarningFlag (FunRhs {}) = Just Opt_WarnIncompletePatterns
+exhaustiveWarningFlag CaseAlt = Just Opt_WarnIncompletePatterns
+exhaustiveWarningFlag IfAlt = Nothing
+exhaustiveWarningFlag LambdaExpr = Just Opt_WarnIncompleteUniPatterns
+exhaustiveWarningFlag PatBindRhs = Just Opt_WarnIncompleteUniPatterns
+exhaustiveWarningFlag ProcExpr = Just Opt_WarnIncompleteUniPatterns
+exhaustiveWarningFlag RecUpd = Just Opt_WarnIncompletePatternsRecUpd
+exhaustiveWarningFlag ThPatSplice = Nothing
+exhaustiveWarningFlag PatSyn = Nothing
+exhaustiveWarningFlag ThPatQuote = Nothing
+exhaustiveWarningFlag (StmtCtxt {}) = Nothing -- Don't warn about incomplete patterns
-- in list comprehensions, pattern guards
-- etc. They are often *supposed* to be
-- incomplete
diff --git a/compiler/deSugar/Desugar.hs b/compiler/deSugar/Desugar.hs
index 1c175f2cbd..6f14b63b93 100644
--- a/compiler/deSugar/Desugar.hs
+++ b/compiler/deSugar/Desugar.hs
@@ -563,7 +563,7 @@ dsRule (L loc (HsRule name rule_act vars lhs _tv_lhs rhs _fv_rhs))
-- Substitute the dict bindings eagerly,
-- and take the body apart into a (f args) form
; case decomposeRuleLhs bndrs'' lhs'' of {
- Left msg -> do { warnDs msg; return Nothing } ;
+ Left msg -> do { warnDs NoReason msg; return Nothing } ;
Right (final_bndrs, fn_id, args) -> do
{ let is_local = isLocalId fn_id
@@ -598,7 +598,8 @@ warnRuleShadowing rule_name rule_act fn_id arg_ids
| isLocalId lhs_id || canUnfold (idUnfolding lhs_id)
-- If imported with no unfolding, no worries
, idInlineActivation lhs_id `competesWith` rule_act
- = warnDs (vcat [ hang (text "Rule" <+> pprRuleName rule_name
+ = warnDs (Reason Opt_WarnInlineRuleShadowing)
+ (vcat [ hang (text "Rule" <+> pprRuleName rule_name
<+> text "may never fire")
2 (text "because" <+> quotes (ppr lhs_id)
<+> text "might inline first")
@@ -608,7 +609,8 @@ warnRuleShadowing rule_name rule_act fn_id arg_ids
| check_rules_too
, bad_rule : _ <- get_bad_rules lhs_id
- = warnDs (vcat [ hang (text "Rule" <+> pprRuleName rule_name
+ = warnDs (Reason Opt_WarnInlineRuleShadowing)
+ (vcat [ hang (text "Rule" <+> pprRuleName rule_name
<+> text "may never fire")
2 (text "because rule" <+> pprRuleName (ruleName bad_rule)
<+> text "for"<+> quotes (ppr lhs_id)
diff --git a/compiler/deSugar/DsBinds.hs b/compiler/deSugar/DsBinds.hs
index da206867d4..5bd31a7900 100644
--- a/compiler/deSugar/DsBinds.hs
+++ b/compiler/deSugar/DsBinds.hs
@@ -620,16 +620,16 @@ dsSpec :: Maybe CoreExpr -- Just rhs => RULE is for a local binding
dsSpec mb_poly_rhs (L loc (SpecPrag poly_id spec_co spec_inl))
| isJust (isClassOpId_maybe poly_id)
= putSrcSpanDs loc $
- do { warnDs (text "Ignoring useless SPECIALISE pragma for class method selector"
- <+> quotes (ppr poly_id))
+ do { warnDs NoReason (text "Ignoring useless SPECIALISE pragma for class method selector"
+ <+> quotes (ppr poly_id))
; return Nothing } -- There is no point in trying to specialise a class op
-- Moreover, classops don't (currently) have an inl_sat arity set
-- (it would be Just 0) and that in turn makes makeCorePair bleat
| no_act_spec && isNeverActive rule_act
= putSrcSpanDs loc $
- do { warnDs (text "Ignoring useless SPECIALISE pragma for NOINLINE function:"
- <+> quotes (ppr poly_id))
+ do { warnDs NoReason (text "Ignoring useless SPECIALISE pragma for NOINLINE function:"
+ <+> quotes (ppr poly_id))
; return Nothing } -- Function is NOINLINE, and the specialiation inherits that
-- See Note [Activation pragmas for SPECIALISE]
@@ -646,7 +646,7 @@ dsSpec mb_poly_rhs (L loc (SpecPrag poly_id spec_co spec_inl))
-- , text "spec_co:" <+> ppr spec_co
-- , text "ds_rhs:" <+> ppr ds_lhs ]) $
case decomposeRuleLhs bndrs ds_lhs of {
- Left msg -> do { warnDs msg; return Nothing } ;
+ Left msg -> do { warnDs NoReason msg; return Nothing } ;
Right (rule_bndrs, _fn, args) -> do
{ dflags <- getDynFlags
@@ -717,7 +717,7 @@ dsMkUserRule this_mod is_local name act fn bndrs args rhs = do
let rule = mkRule this_mod False is_local name act fn bndrs args rhs
dflags <- getDynFlags
when (isOrphan (ru_orphan rule) && wopt Opt_WarnOrphans dflags) $
- warnDs (ruleOrphWarn rule)
+ warnDs (Reason Opt_WarnOrphans) (ruleOrphWarn rule)
return rule
ruleOrphWarn :: CoreRule -> SDoc
diff --git a/compiler/deSugar/DsExpr.hs b/compiler/deSugar/DsExpr.hs
index 9219d7e9de..2320ab498a 100644
--- a/compiler/deSugar/DsExpr.hs
+++ b/compiler/deSugar/DsExpr.hs
@@ -1005,8 +1005,8 @@ warnDiscardedDoBindings rhs rhs_ty
-- Warn about discarding non-() things in 'monadic' binding
; if warn_unused && not (isUnitTy norm_elt_ty)
- then warnDs (badMonadBind rhs elt_ty
- (text "-fno-warn-unused-do-bind"))
+ then warnDs (Reason Opt_WarnUnusedDoBind)
+ (badMonadBind rhs elt_ty)
else
-- Warn about discarding m a things in 'monadic' binding of the same type,
@@ -1015,20 +1015,20 @@ warnDiscardedDoBindings rhs rhs_ty
do { case tcSplitAppTy_maybe norm_elt_ty of
Just (elt_m_ty, _)
| m_ty `eqType` topNormaliseType fam_inst_envs elt_m_ty
- -> warnDs (badMonadBind rhs elt_ty
- (text "-fno-warn-wrong-do-bind"))
+ -> warnDs (Reason Opt_WarnWrongDoBind)
+ (badMonadBind rhs elt_ty)
_ -> return () } } }
| otherwise -- RHS does have type of form (m ty), which is weird
= return () -- but at lesat this warning is irrelevant
-badMonadBind :: LHsExpr Id -> Type -> SDoc -> SDoc
-badMonadBind rhs elt_ty flag_doc
+badMonadBind :: LHsExpr Id -> Type -> SDoc
+badMonadBind rhs elt_ty
= vcat [ hang (text "A do-notation statement discarded a result of type")
2 (quotes (ppr elt_ty))
, hang (text "Suppress this warning by saying")
2 (quotes $ text "_ <-" <+> ppr rhs)
- , text "or by using the flag" <+> flag_doc ]
+ ]
{-
************************************************************************
diff --git a/compiler/deSugar/DsMonad.hs b/compiler/deSugar/DsMonad.hs
index 0d19ff9d2c..79ca265e4e 100644
--- a/compiler/deSugar/DsMonad.hs
+++ b/compiler/deSugar/DsMonad.hs
@@ -387,12 +387,15 @@ putSrcSpanDs (UnhelpfulSpan {}) thing_inside
putSrcSpanDs (RealSrcSpan real_span) thing_inside
= updLclEnv (\ env -> env {dsl_loc = real_span}) thing_inside
-warnDs :: SDoc -> DsM ()
-warnDs warn = do { env <- getGblEnv
- ; loc <- getSrcSpanDs
- ; dflags <- getDynFlags
- ; let msg = mkWarnMsg dflags loc (ds_unqual env) warn
- ; updMutVar (ds_msgs env) (\ (w,e) -> (w `snocBag` msg, e)) }
+-- | Emit a warning for the current source location
+warnDs :: WarnReason -> SDoc -> DsM ()
+warnDs reason warn
+ = do { env <- getGblEnv
+ ; loc <- getSrcSpanDs
+ ; dflags <- getDynFlags
+ ; let msg = makeIntoWarning reason $
+ mkWarnMsg dflags loc (ds_unqual env) warn
+ ; updMutVar (ds_msgs env) (\ (w,e) -> (w `snocBag` msg, e)) }
failWithDs :: SDoc -> DsM a
failWithDs err
diff --git a/compiler/deSugar/Match.hs b/compiler/deSugar/Match.hs
index 763b04f519..fc70cc643d 100644
--- a/compiler/deSugar/Match.hs
+++ b/compiler/deSugar/Match.hs
@@ -217,7 +217,7 @@ match vars@(v:_) ty eqns -- Eqns *can* be empty
case p of PgView e _ -> e:acc
_ -> acc) [] group) eqns
maybeWarn [] = return ()
- maybeWarn l = warnDs (vcat l)
+ maybeWarn l = warnDs NoReason (vcat l)
in
maybeWarn $ (map (\g -> text "Putting these view expressions into the same case:" <+> (ppr g))
(filter (not . null) gs))
diff --git a/compiler/deSugar/MatchLit.hs b/compiler/deSugar/MatchLit.hs
index b1c82ccb90..c66021f6b5 100644
--- a/compiler/deSugar/MatchLit.hs
+++ b/compiler/deSugar/MatchLit.hs
@@ -139,9 +139,9 @@ warnAboutIdentities dflags (Var conv_fn) type_of_conv
, idName conv_fn `elem` conversionNames
, Just (arg_ty, res_ty) <- splitFunTy_maybe type_of_conv
, arg_ty `eqType` res_ty -- So we are converting ty -> ty
- = warnDs (vcat [ text "Call of" <+> ppr conv_fn <+> dcolon <+> ppr type_of_conv
+ = warnDs (Reason Opt_WarnIdentities)
+ (vcat [ text "Call of" <+> ppr conv_fn <+> dcolon <+> ppr type_of_conv
, nest 2 $ text "can probably be omitted"
- , parens (text "Use -fno-warn-identities to suppress this message")
])
warnAboutIdentities _ _ _ = return ()
@@ -173,7 +173,8 @@ warnAboutOverflowedLiterals dflags lit
check :: forall a. (Bounded a, Integral a) => Integer -> Name -> a -> DsM ()
check i tc _proxy
= when (i < minB || i > maxB) $ do
- warnDs (vcat [ text "Literal" <+> integer i
+ warnDs (Reason Opt_WarnOverflowedLiterals)
+ (vcat [ text "Literal" <+> integer i
<+> text "is out of the" <+> ppr tc <+> ptext (sLit "range")
<+> integer minB <> text ".." <> integer maxB
, sug ])
@@ -209,7 +210,7 @@ warnAboutEmptyEnumerations dflags fromExpr mThnExpr toExpr
, let check :: forall a. (Enum a, Num a) => a -> DsM ()
check _proxy
= when (null enumeration) $
- warnDs (text "Enumeration is empty")
+ warnDs (Reason Opt_WarnEmptyEnumerations) (text "Enumeration is empty")
where
enumeration :: [a]
enumeration = case mThn of
diff --git a/testsuite/tests/deSugar/should_compile/DsStrictWarn.stderr b/testsuite/tests/deSugar/should_compile/DsStrictWarn.stderr
index 974e51c38c..e5de14fda8 100644
--- a/testsuite/tests/deSugar/should_compile/DsStrictWarn.stderr
+++ b/testsuite/tests/deSugar/should_compile/DsStrictWarn.stderr
@@ -1,4 +1,4 @@
-DsStrictWarn.hs:7:11: warning:
+DsStrictWarn.hs:7:11: warning: [-Wincomplete-uni-patterns]
Pattern match(es) are non-exhaustive
In a pattern binding: Patterns not matched: []
diff --git a/testsuite/tests/deSugar/should_compile/GadtOverlap.stderr b/testsuite/tests/deSugar/should_compile/GadtOverlap.stderr
index 4e3f1c17f1..02f091ee36 100644
--- a/testsuite/tests/deSugar/should_compile/GadtOverlap.stderr
+++ b/testsuite/tests/deSugar/should_compile/GadtOverlap.stderr
@@ -1,4 +1,4 @@
-GadtOverlap.hs:19:1: Warning:
+GadtOverlap.hs:19:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘h’: Patterns not matched: T3
diff --git a/testsuite/tests/deSugar/should_compile/T10662.stderr b/testsuite/tests/deSugar/should_compile/T10662.stderr
index ef93dc3e82..d81891619c 100644
--- a/testsuite/tests/deSugar/should_compile/T10662.stderr
+++ b/testsuite/tests/deSugar/should_compile/T10662.stderr
@@ -1,6 +1,5 @@
-T10662.hs:3:3: warning:
+T10662.hs:3:3: warning: [-Wunused-do-bind (in -Wall)]
A do-notation statement discarded a result of type ‘[Char]’
Suppress this warning by saying
‘_ <- ($) return let a = "hello" in a’
- or by using the flag -fno-warn-unused-do-bind
diff --git a/testsuite/tests/deSugar/should_compile/T2395.stderr b/testsuite/tests/deSugar/should_compile/T2395.stderr
index fe6498d790..d0e8494150 100644
--- a/testsuite/tests/deSugar/should_compile/T2395.stderr
+++ b/testsuite/tests/deSugar/should_compile/T2395.stderr
@@ -1,4 +1,4 @@
-T2395.hs:13:1: warning:
+T2395.hs:13:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘bar’: bar _ = ...
diff --git a/testsuite/tests/deSugar/should_compile/T3263-1.stderr b/testsuite/tests/deSugar/should_compile/T3263-1.stderr
index b792f1a887..a50f8933aa 100644
--- a/testsuite/tests/deSugar/should_compile/T3263-1.stderr
+++ b/testsuite/tests/deSugar/should_compile/T3263-1.stderr
@@ -1,10 +1,8 @@
-T3263-1.hs:25:3: Warning:
+T3263-1.hs:25:3: warning: [-Wunused-do-bind (in -Wall)]
A do-notation statement discarded a result of type ‘Int’
Suppress this warning by saying ‘_ <- nonNullM’
- or by using the flag -fno-warn-unused-do-bind
-T3263-1.hs:35:3: Warning:
+T3263-1.hs:35:3: warning: [-Wunused-do-bind (in -Wall)]
A do-notation statement discarded a result of type ‘Int’
Suppress this warning by saying ‘_ <- nonNullM’
- or by using the flag -fno-warn-unused-do-bind
diff --git a/testsuite/tests/deSugar/should_compile/T3263-2.stderr b/testsuite/tests/deSugar/should_compile/T3263-2.stderr
index 1665d722d5..83de241f50 100644
--- a/testsuite/tests/deSugar/should_compile/T3263-2.stderr
+++ b/testsuite/tests/deSugar/should_compile/T3263-2.stderr
@@ -1,10 +1,8 @@
-T3263-2.hs:25:3: Warning:
+T3263-2.hs:25:3: warning: [-Wwrong-do-bind (in -Wdefault)]
A do-notation statement discarded a result of type ‘m Int’
Suppress this warning by saying ‘_ <- return (return 10 :: m Int)’
- or by using the flag -fno-warn-wrong-do-bind
-T3263-2.hs:37:3: Warning:
+T3263-2.hs:37:3: warning: [-Wwrong-do-bind (in -Wdefault)]
A do-notation statement discarded a result of type ‘m Int’
Suppress this warning by saying ‘_ <- return (return 10 :: m Int)’
- or by using the flag -fno-warn-wrong-do-bind
diff --git a/testsuite/tests/deSugar/should_compile/T4488.stderr b/testsuite/tests/deSugar/should_compile/T4488.stderr
index f3a70cd586..3983514296 100644
--- a/testsuite/tests/deSugar/should_compile/T4488.stderr
+++ b/testsuite/tests/deSugar/should_compile/T4488.stderr
@@ -1,20 +1,16 @@
-T4488.hs:11:11: Warning:
+T4488.hs:11:11: warning: [-Widentities]
Call of fromIntegral :: Int -> Int
can probably be omitted
- (Use -fno-warn-identities to suppress this message)
-T4488.hs:17:11: Warning:
+T4488.hs:17:11: warning: [-Widentities]
Call of toInteger :: Integer -> Integer
can probably be omitted
- (Use -fno-warn-identities to suppress this message)
-T4488.hs:23:11: Warning:
+T4488.hs:23:11: warning: [-Widentities]
Call of toRational :: Rational -> Rational
can probably be omitted
- (Use -fno-warn-identities to suppress this message)
-T4488.hs:29:11: Warning:
+T4488.hs:29:11: warning: [-Widentities]
Call of realToFrac :: Float -> Float
can probably be omitted
- (Use -fno-warn-identities to suppress this message)
diff --git a/testsuite/tests/deSugar/should_compile/T5117.stderr b/testsuite/tests/deSugar/should_compile/T5117.stderr
index 6ef44c81a3..1d66704a05 100644
--- a/testsuite/tests/deSugar/should_compile/T5117.stderr
+++ b/testsuite/tests/deSugar/should_compile/T5117.stderr
@@ -1,4 +1,4 @@
-T5117.hs:16:1: warning:
+T5117.hs:16:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘f3’: f3 (MyString "a") = ...
diff --git a/testsuite/tests/deSugar/should_compile/T5455.stderr b/testsuite/tests/deSugar/should_compile/T5455.stderr
index e4214ae0a8..9c43612cca 100644
--- a/testsuite/tests/deSugar/should_compile/T5455.stderr
+++ b/testsuite/tests/deSugar/should_compile/T5455.stderr
@@ -1,8 +1,8 @@
-T5455.hs:8:11: warning:
+T5455.hs:8:11: warning: [-Wincomplete-uni-patterns]
Pattern match(es) are non-exhaustive
In a pattern binding: Patterns not matched: []
-T5455.hs:13:13: warning:
+T5455.hs:13:13: warning: [-Wincomplete-uni-patterns]
Pattern match(es) are non-exhaustive
In a pattern binding: Patterns not matched: []
diff --git a/testsuite/tests/deSugar/should_compile/ds002.stderr b/testsuite/tests/deSugar/should_compile/ds002.stderr
index c48e532621..20705a351b 100644
--- a/testsuite/tests/deSugar/should_compile/ds002.stderr
+++ b/testsuite/tests/deSugar/should_compile/ds002.stderr
@@ -1,12 +1,12 @@
-ds002.hs:8:1: warning:
+ds002.hs:8:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘f’: f y = ...
-ds002.hs:9:1: warning:
+ds002.hs:9:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘f’: f z = ...
-ds002.hs:14:1: warning:
+ds002.hs:14:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘g’: g x y z = ...
diff --git a/testsuite/tests/deSugar/should_compile/ds003.stderr b/testsuite/tests/deSugar/should_compile/ds003.stderr
index 4851f56b71..b54ea19049 100644
--- a/testsuite/tests/deSugar/should_compile/ds003.stderr
+++ b/testsuite/tests/deSugar/should_compile/ds003.stderr
@@ -1,8 +1,8 @@
-ds003.hs:7:1: warning:
+ds003.hs:7:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘f’: f (x : x1 : x2 : x3) ~(y, ys) z = ...
-ds003.hs:8:1: warning:
+ds003.hs:8:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘f’: f x y True = ...
diff --git a/testsuite/tests/deSugar/should_compile/ds019.stderr b/testsuite/tests/deSugar/should_compile/ds019.stderr
index 1761ad9606..67390d49e3 100644
--- a/testsuite/tests/deSugar/should_compile/ds019.stderr
+++ b/testsuite/tests/deSugar/should_compile/ds019.stderr
@@ -1,12 +1,12 @@
-ds019.hs:6:1: warning:
+ds019.hs:6:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘f’: f d (j, k) p = ...
-ds019.hs:7:1: warning:
+ds019.hs:7:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘f’: f (e, f, g) l q = ...
-ds019.hs:8:1: warning:
+ds019.hs:8:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘f’: f h (m, n) r = ...
diff --git a/testsuite/tests/deSugar/should_compile/ds020.stderr b/testsuite/tests/deSugar/should_compile/ds020.stderr
index 85abaa4e2a..e046f327f9 100644
--- a/testsuite/tests/deSugar/should_compile/ds020.stderr
+++ b/testsuite/tests/deSugar/should_compile/ds020.stderr
@@ -1,20 +1,20 @@
-ds020.hs:9:1: warning:
+ds020.hs:9:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘a’: a ~(~[], ~[], ~[]) = ...
-ds020.hs:12:1: warning:
+ds020.hs:12:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘b’: b ~(~x : ~xs : ~ys) = ...
-ds020.hs:19:1: warning:
+ds020.hs:19:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘d’: d ~(n+43) = ...
-ds020.hs:20:1: warning:
+ds020.hs:20:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘d’: d ~(n+999) = ...
-ds020.hs:23:1: warning:
+ds020.hs:23:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘f’: f x@(~[]) = ...
diff --git a/testsuite/tests/deSugar/should_compile/ds022.stderr b/testsuite/tests/deSugar/should_compile/ds022.stderr
index b5c33bfd5d..81b6de9fb1 100644
--- a/testsuite/tests/deSugar/should_compile/ds022.stderr
+++ b/testsuite/tests/deSugar/should_compile/ds022.stderr
@@ -1,8 +1,8 @@
-ds022.hs:24:1: warning:
+ds022.hs:24:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘i’: i 1 0.011e2 = ...
-ds022.hs:25:1: warning:
+ds022.hs:25:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘i’: i 2 2.20000 = ...
diff --git a/testsuite/tests/deSugar/should_compile/ds043.stderr b/testsuite/tests/deSugar/should_compile/ds043.stderr
index c6fb861300..3ffb20f6ac 100644
--- a/testsuite/tests/deSugar/should_compile/ds043.stderr
+++ b/testsuite/tests/deSugar/should_compile/ds043.stderr
@@ -1,4 +1,4 @@
-ds043.hs:10:3: warning:
+ds043.hs:10:3: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In a case alternative: B {e = True, f = False} -> ...
diff --git a/testsuite/tests/deSugar/should_compile/ds051.stderr b/testsuite/tests/deSugar/should_compile/ds051.stderr
index 0cf4e1d34d..a59b7ba49d 100644
--- a/testsuite/tests/deSugar/should_compile/ds051.stderr
+++ b/testsuite/tests/deSugar/should_compile/ds051.stderr
@@ -1,12 +1,12 @@
-ds051.hs:7:1: warning:
+ds051.hs:7:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘f1’: f1 "ab" = ...
-ds051.hs:12:1: warning:
+ds051.hs:12:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘f2’: f2 ('a' : 'b' : []) = ...
-ds051.hs:17:1: warning:
+ds051.hs:17:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘f3’: f3 "ab" = ...
diff --git a/testsuite/tests/deSugar/should_compile/ds056.stderr b/testsuite/tests/deSugar/should_compile/ds056.stderr
index 4d605c7af7..e945a72d64 100644
--- a/testsuite/tests/deSugar/should_compile/ds056.stderr
+++ b/testsuite/tests/deSugar/should_compile/ds056.stderr
@@ -1,4 +1,4 @@
-ds056.hs:10:1: warning:
+ds056.hs:10:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘g’: g _ = ...
diff --git a/testsuite/tests/deSugar/should_compile/ds058.stderr b/testsuite/tests/deSugar/should_compile/ds058.stderr
index 61aa219245..4a087766e4 100644
--- a/testsuite/tests/deSugar/should_compile/ds058.stderr
+++ b/testsuite/tests/deSugar/should_compile/ds058.stderr
@@ -1,4 +1,4 @@
-ds058.hs:7:9: warning:
+ds058.hs:7:9: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In a case alternative: Just _ -> ...
diff --git a/testsuite/tests/dependent/should_compile/KindEqualities.stderr b/testsuite/tests/dependent/should_compile/KindEqualities.stderr
index bb52bb4578..af429d106b 100644
--- a/testsuite/tests/dependent/should_compile/KindEqualities.stderr
+++ b/testsuite/tests/dependent/should_compile/KindEqualities.stderr
@@ -1,5 +1,5 @@
-KindEqualities.hs:23:1: warning:
+KindEqualities.hs:23:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘zero’:
Patterns not matched: (TyApp (TyApp _ _) _)
diff --git a/testsuite/tests/driver/werror.stderr b/testsuite/tests/driver/werror.stderr
index 09424963b2..38bab8b821 100644
--- a/testsuite/tests/driver/werror.stderr
+++ b/testsuite/tests/driver/werror.stderr
@@ -20,11 +20,11 @@ werror.hs:10:1: warning: [-Wmissing-signatures (in -Wall)]
Top-level binding with no type signature:
f :: forall t t1. [t] -> [t1]
-werror.hs:10:1: warning:
+werror.hs:10:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘f’: Patterns not matched: (_:_)
-werror.hs:11:1: warning:
+werror.hs:11:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘f’: f [] = ...
diff --git a/testsuite/tests/gadt/T7294.stderr b/testsuite/tests/gadt/T7294.stderr
index a8ea17df80..5fd4ea92ab 100644
--- a/testsuite/tests/gadt/T7294.stderr
+++ b/testsuite/tests/gadt/T7294.stderr
@@ -1,12 +1,12 @@
-
-T7294.hs:25:1: warning:
- Pattern match is redundant
- In an equation for ‘nth’: nth Nil _ = ...
-
-T7294.hs:25:5: warning:
- • Couldn't match type ‘'True’ with ‘'False’
- Inaccessible code in
- a pattern with constructor: Nil :: forall a. Vec a 'Zero,
- in an equation for ‘nth’
- • In the pattern: Nil
- In an equation for ‘nth’: nth Nil _ = undefined
+
+T7294.hs:25:1: warning: [-Woverlapping-patterns (in -Wdefault)]
+ Pattern match is redundant
+ In an equation for ‘nth’: nth Nil _ = ...
+
+T7294.hs:25:5: warning:
+ • Couldn't match type ‘'True’ with ‘'False’
+ Inaccessible code in
+ a pattern with constructor: Nil :: forall a. Vec a 'Zero,
+ in an equation for ‘nth’
+ • In the pattern: Nil
+ In an equation for ‘nth’: nth Nil _ = undefined
diff --git a/testsuite/tests/ghci/scripts/Defer02.stderr b/testsuite/tests/ghci/scripts/Defer02.stderr
index 87171e0441..f1d9787529 100644
--- a/testsuite/tests/ghci/scripts/Defer02.stderr
+++ b/testsuite/tests/ghci/scripts/Defer02.stderr
@@ -17,7 +17,7 @@
• In the expression: x == x
In an equation for ‘b’: b x = x == x
-../../typecheck/should_run/Defer01.hs:25:1: warning:
+../../typecheck/should_run/Defer01.hs:25:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match has inaccessible right hand side
In an equation for ‘c’: c (C2 x) = ...
@@ -102,7 +102,7 @@
In the type signature:
k :: (Int ~ Bool) => Int -> Bool
-../../typecheck/should_run/Defer01.hs:46:1: warning:
+../../typecheck/should_run/Defer01.hs:46:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘k’: k x = ...
diff --git a/testsuite/tests/ghci/scripts/T3263.stderr b/testsuite/tests/ghci/scripts/T3263.stderr
index 737f0bbcaa..df58a5dc58 100644
--- a/testsuite/tests/ghci/scripts/T3263.stderr
+++ b/testsuite/tests/ghci/scripts/T3263.stderr
@@ -1,5 +1,4 @@
-T3263.hs:8:12: Warning:
+T3263.hs:8:12: warning: [-Wunused-do-bind (in -Wall)]
A do-notation statement discarded a result of type ‘Char’
Suppress this warning by saying ‘_ <- getChar’
- or by using the flag -fno-warn-unused-do-bind
diff --git a/testsuite/tests/numeric/should_compile/T10929.stderr b/testsuite/tests/numeric/should_compile/T10929.stderr
index 8723c42a9a..15c382ca3e 100644
--- a/testsuite/tests/numeric/should_compile/T10929.stderr
+++ b/testsuite/tests/numeric/should_compile/T10929.stderr
@@ -1,6 +1,9 @@
-T10929.hs:4:6: warning: Enumeration is empty
+T10929.hs:4:6: warning: [-Wempty-enumerations (in -Wdefault)]
+ Enumeration is empty
-T10929.hs:22:6: warning: Enumeration is empty
+T10929.hs:22:6: warning: [-Wempty-enumerations (in -Wdefault)]
+ Enumeration is empty
-T10929.hs:28:6: warning: Enumeration is empty
+T10929.hs:28:6: warning: [-Wempty-enumerations (in -Wdefault)]
+ Enumeration is empty
diff --git a/testsuite/tests/numeric/should_compile/T7881.stderr b/testsuite/tests/numeric/should_compile/T7881.stderr
index db1dbed796..9bcca4f5e9 100644
--- a/testsuite/tests/numeric/should_compile/T7881.stderr
+++ b/testsuite/tests/numeric/should_compile/T7881.stderr
@@ -1,6 +1,9 @@
-T7881.hs:7:6: Warning: Enumeration is empty
+T7881.hs:7:6: warning: [-Wempty-enumerations (in -Wdefault)]
+ Enumeration is empty
-T7881.hs:25:6: Warning: Enumeration is empty
+T7881.hs:25:6: warning: [-Wempty-enumerations (in -Wdefault)]
+ Enumeration is empty
-T7881.hs:31:6: Warning: Enumeration is empty
+T7881.hs:31:6: warning: [-Wempty-enumerations (in -Wdefault)]
+ Enumeration is empty
diff --git a/testsuite/tests/numeric/should_compile/T7895.stderr b/testsuite/tests/numeric/should_compile/T7895.stderr
index a4438efe4c..cf25e80a25 100644
--- a/testsuite/tests/numeric/should_compile/T7895.stderr
+++ b/testsuite/tests/numeric/should_compile/T7895.stderr
@@ -1,6 +1,6 @@
-T7895.hs:10:6: Warning:
+T7895.hs:10:6: warning: [-Woverflowed-literals (in -Wdefault)]
Literal 300 is out of the Word8 range 0..255
-T7895.hs:13:6: Warning:
+T7895.hs:13:6: warning: [-Woverflowed-literals (in -Wdefault)]
Literal -129 is out of the Int8 range -128..127
diff --git a/testsuite/tests/numeric/should_compile/T8542.stderr b/testsuite/tests/numeric/should_compile/T8542.stderr
index b86ccad361..f4143821f6 100644
--- a/testsuite/tests/numeric/should_compile/T8542.stderr
+++ b/testsuite/tests/numeric/should_compile/T8542.stderr
@@ -1,8 +1,8 @@
-T8542.hs:6:6: Warning:
+T8542.hs:6:6: warning: [-Woverflowed-literals (in -Wdefault)]
Literal 128 is out of the Int8 range -128..127
If you are trying to write a large negative literal, use NegativeLiterals
-T8542.hs:9:5: Warning:
+T8542.hs:9:5: warning: [-Woverflowed-literals (in -Wdefault)]
Literal 128 is out of the Int8 range -128..127
If you are trying to write a large negative literal, use NegativeLiterals
diff --git a/testsuite/tests/pmcheck/should_compile/T11245.stderr b/testsuite/tests/pmcheck/should_compile/T11245.stderr
index 184029a274..4e976a71c6 100644
--- a/testsuite/tests/pmcheck/should_compile/T11245.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T11245.stderr
@@ -1,4 +1,4 @@
-
-T11245.hs:5:7: warning:
- Pattern match(es) are non-exhaustive
- In an equation for ‘a’: Guards do not cover entire pattern space
+
+T11245.hs:5:7: warning: [-Wincomplete-patterns (in -Wextra)]
+ Pattern match(es) are non-exhaustive
+ In an equation for ‘a’: Guards do not cover entire pattern space
diff --git a/testsuite/tests/pmcheck/should_compile/T2204.stderr b/testsuite/tests/pmcheck/should_compile/T2204.stderr
index d2e6e0a434..c2e2251fc9 100644
--- a/testsuite/tests/pmcheck/should_compile/T2204.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T2204.stderr
@@ -1,4 +1,5 @@
-T2204.hs:6:1: warning:
+
+T2204.hs:6:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘f’:
Patterns not matched:
@@ -8,7 +9,7 @@ T2204.hs:6:1: warning:
('0':p:_) where p is not one of {'1'}
...
-T2204.hs:9:1: warning:
+T2204.hs:9:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘g’:
Patterns not matched: p where p is not one of {0}
diff --git a/testsuite/tests/pmcheck/should_compile/T9951b.stderr b/testsuite/tests/pmcheck/should_compile/T9951b.stderr
index b998ce225b..ff6696b466 100644
--- a/testsuite/tests/pmcheck/should_compile/T9951b.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T9951b.stderr
@@ -1,4 +1,5 @@
-T9951b.hs:7:1: warning:
+
+T9951b.hs:7:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘f’:
Patterns not matched:
diff --git a/testsuite/tests/pmcheck/should_compile/pmc001.stderr b/testsuite/tests/pmcheck/should_compile/pmc001.stderr
index eb0bd4bc56..9cd2e255ce 100644
--- a/testsuite/tests/pmcheck/should_compile/pmc001.stderr
+++ b/testsuite/tests/pmcheck/should_compile/pmc001.stderr
@@ -1,4 +1,5 @@
-pmc001.hs:14:1: warning:
+
+pmc001.hs:14:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘f’:
Patterns not matched:
@@ -7,7 +8,7 @@ pmc001.hs:14:1: warning:
MkT3 MkT1
MkT3 (MkT2 _)
-pmc001.hs:19:1: warning:
+pmc001.hs:19:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘g’:
Patterns not matched:
diff --git a/testsuite/tests/pmcheck/should_compile/pmc003.stderr b/testsuite/tests/pmcheck/should_compile/pmc003.stderr
index f1561730a3..03e0df0d46 100644
--- a/testsuite/tests/pmcheck/should_compile/pmc003.stderr
+++ b/testsuite/tests/pmcheck/should_compile/pmc003.stderr
@@ -1,4 +1,4 @@
-pmc003.hs:7:1: warning:
+pmc003.hs:7:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match has inaccessible right hand side
In an equation for ‘f’: f True False = ...
diff --git a/testsuite/tests/pmcheck/should_compile/pmc004.stderr b/testsuite/tests/pmcheck/should_compile/pmc004.stderr
index 37f85d5938..7bce24399f 100644
--- a/testsuite/tests/pmcheck/should_compile/pmc004.stderr
+++ b/testsuite/tests/pmcheck/should_compile/pmc004.stderr
@@ -1,4 +1,4 @@
-pmc004.hs:16:1: warning:
+pmc004.hs:16:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match has inaccessible right hand side
In an equation for ‘h’: h _ G1 = ...
diff --git a/testsuite/tests/pmcheck/should_compile/pmc005.stderr b/testsuite/tests/pmcheck/should_compile/pmc005.stderr
index ddb4af92ee..b7b9cac5f3 100644
--- a/testsuite/tests/pmcheck/should_compile/pmc005.stderr
+++ b/testsuite/tests/pmcheck/should_compile/pmc005.stderr
@@ -1,8 +1,8 @@
-pmc005.hs:11:1: warning:
+pmc005.hs:11:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘foo’: Patterns not matched: TBool TBool
-pmc005.hs:12:1: warning:
+pmc005.hs:12:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match has inaccessible right hand side
In an equation for ‘foo’: foo _ TList = ...
diff --git a/testsuite/tests/pmcheck/should_compile/pmc007.stderr b/testsuite/tests/pmcheck/should_compile/pmc007.stderr
index 291fbdcde2..f6e4ece88c 100644
--- a/testsuite/tests/pmcheck/should_compile/pmc007.stderr
+++ b/testsuite/tests/pmcheck/should_compile/pmc007.stderr
@@ -1,9 +1,10 @@
-pmc007.hs:7:1: warning:
+
+pmc007.hs:7:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘f’:
Patterns not matched: p where p is not one of {"ac", "ab"}
-pmc007.hs:12:1: warning:
+pmc007.hs:12:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘g’:
Patterns not matched:
@@ -13,7 +14,7 @@ pmc007.hs:12:1: warning:
('a':p:_) where p is not one of {'c', 'b'}
...
-pmc007.hs:18:11: warning:
+pmc007.hs:18:11: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
Patterns not matched:
diff --git a/testsuite/tests/simplCore/should_compile/T6082-RULE.stderr b/testsuite/tests/simplCore/should_compile/T6082-RULE.stderr
index 165a7773bb..7359861750 100644
--- a/testsuite/tests/simplCore/should_compile/T6082-RULE.stderr
+++ b/testsuite/tests/simplCore/should_compile/T6082-RULE.stderr
@@ -1,8 +1,8 @@
-T6082-RULE.hs:5:11: warning:
+T6082-RULE.hs:5:11: warning: [-Winline-rule-shadowing (in -Wdefault)]
Rule "foo1" may never fire because ‘foo1’ might inline first
Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘foo1’
-T6082-RULE.hs:10:11: warning:
+T6082-RULE.hs:10:11: warning: [-Winline-rule-shadowing (in -Wdefault)]
Rule "foo2" may never fire because ‘foo2’ might inline first
Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘foo2’
diff --git a/testsuite/tests/simplCore/should_compile/T7287.stderr b/testsuite/tests/simplCore/should_compile/T7287.stderr
index 66dfe007f5..5aa71e0e98 100644
--- a/testsuite/tests/simplCore/should_compile/T7287.stderr
+++ b/testsuite/tests/simplCore/should_compile/T7287.stderr
@@ -1,5 +1,5 @@
-T7287.hs:7:3: warning:
+T7287.hs:7:3: warning: [-Winline-rule-shadowing (in -Wdefault)]
Rule "int2Word#/word2Int#" may never fire
because rule "word2Int#" for ‘word2Int#’ might fire first
Probable fix: add phase [n] or [~n] to the competing rule
diff --git a/testsuite/tests/th/TH_repUnboxedTuples.stderr b/testsuite/tests/th/TH_repUnboxedTuples.stderr
index bd647aba19..45cb29cdef 100644
--- a/testsuite/tests/th/TH_repUnboxedTuples.stderr
+++ b/testsuite/tests/th/TH_repUnboxedTuples.stderr
@@ -4,6 +4,6 @@ case (# 'b', GHC.Types.False #) of
(# 'b', GHC.Types.False #) -> (# "Two", 2 #)
(# _, _ #) -> (# "Three", 3 #)
-TH_repUnboxedTuples.hs:18:13: warning:
+TH_repUnboxedTuples.hs:18:13: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In a case alternative: (# 'a', True #) -> ...
diff --git a/testsuite/tests/typecheck/should_compile/T5490.stderr b/testsuite/tests/typecheck/should_compile/T5490.stderr
index 4a2bb1f887..3cf5b3e866 100644
--- a/testsuite/tests/typecheck/should_compile/T5490.stderr
+++ b/testsuite/tests/typecheck/should_compile/T5490.stderr
@@ -1,8 +1,8 @@
-T5490.hs:246:5: warning:
+T5490.hs:246:5: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In a case alternative: HDropZero -> ...
-T5490.hs:295:5: warning:
+T5490.hs:295:5: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In a case alternative: _ -> ...