summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Graf <sebastian.graf@kit.edu>2020-11-18 10:29:25 +0100
committerSebastian Graf <sebastian.graf@kit.edu>2020-11-18 13:53:43 +0100
commit9667ab7d2fe7f115902003638a2a9e9a61576fb8 (patch)
treec6cc6b7c0ff87f41468f16d51727f4009d035d6c
parentfc644b1a643128041cfec25db84e417851e28bab (diff)
downloadhaskell-wip/T18932.tar.gz
PmCheck: Print types of uncovered patterns (#18932)wip/T18932
In order to avoid confusion as in #18932, we display the type of the match variables in the non-exhaustiveness warning, e.g. ``` T18932.hs:14:1: warning: [-Wincomplete-patterns] Pattern match(es) are non-exhaustive In an equation for ‘g’: Patterns of type ‘T a’, ‘T a’, ‘T a’ not matched: (MkT2 _) (MkT1 _) (MkT1 _) (MkT2 _) (MkT1 _) (MkT2 _) (MkT2 _) (MkT2 _) (MkT1 _) (MkT2 _) (MkT2 _) (MkT2 _) ... | 14 | g (MkT1 x) (MkT1 _) (MkT1 _) = x | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``` It also allows us to omit the type signature on wildcard matches which we previously showed in only some situations, particularly `-XEmptyCase`. Fixes #18932.
-rw-r--r--compiler/GHC/HsToCore/Pmc.hs5
-rw-r--r--compiler/GHC/HsToCore/Pmc/Ppr.hs17
-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/T14135.stderr3
-rw-r--r--testsuite/tests/deSugar/should_compile/T14546a.stderr4
-rw-r--r--testsuite/tests/deSugar/should_compile/T14546d.stderr2
-rw-r--r--testsuite/tests/deSugar/should_compile/T5455.stderr4
-rw-r--r--testsuite/tests/dependent/should_compile/KindEqualities.stderr2
-rw-r--r--testsuite/tests/driver/T8101.stderr2
-rw-r--r--testsuite/tests/driver/T8101b.stderr2
-rw-r--r--testsuite/tests/driver/werror.stderr2
-rw-r--r--testsuite/tests/ghci/prog018/prog018.stdout2
-rw-r--r--testsuite/tests/parser/should_compile/T15139.stderr8
-rw-r--r--testsuite/tests/pmcheck/complete_sigs/T13964.stderr3
-rw-r--r--testsuite/tests/pmcheck/complete_sigs/T14059a.stderr6
-rw-r--r--testsuite/tests/pmcheck/complete_sigs/T17386.stderr4
-rw-r--r--testsuite/tests/pmcheck/complete_sigs/completesig02.stderr2
-rw-r--r--testsuite/tests/pmcheck/complete_sigs/completesig04.stderr5
-rw-r--r--testsuite/tests/pmcheck/complete_sigs/completesig06.stderr10
-rw-r--r--testsuite/tests/pmcheck/complete_sigs/completesig07.stderr2
-rw-r--r--testsuite/tests/pmcheck/complete_sigs/completesig10.stderr2
-rw-r--r--testsuite/tests/pmcheck/complete_sigs/completesig11.stderr2
-rw-r--r--testsuite/tests/pmcheck/should_compile/EmptyCase001.stderr6
-rw-r--r--testsuite/tests/pmcheck/should_compile/EmptyCase002.stderr11
-rw-r--r--testsuite/tests/pmcheck/should_compile/EmptyCase003.stderr6
-rw-r--r--testsuite/tests/pmcheck/should_compile/EmptyCase004.stderr14
-rw-r--r--testsuite/tests/pmcheck/should_compile/EmptyCase005.stderr14
-rw-r--r--testsuite/tests/pmcheck/should_compile/EmptyCase006.stderr5
-rw-r--r--testsuite/tests/pmcheck/should_compile/EmptyCase007.stderr16
-rw-r--r--testsuite/tests/pmcheck/should_compile/EmptyCase008.stderr11
-rw-r--r--testsuite/tests/pmcheck/should_compile/EmptyCase009.stderr8
-rw-r--r--testsuite/tests/pmcheck/should_compile/EmptyCase010.stderr21
-rw-r--r--testsuite/tests/pmcheck/should_compile/T10746.stderr2
-rw-r--r--testsuite/tests/pmcheck/should_compile/T11336b.stderr3
-rw-r--r--testsuite/tests/pmcheck/should_compile/T11822.stderr3
-rw-r--r--testsuite/tests/pmcheck/should_compile/T15305.stderr3
-rw-r--r--testsuite/tests/pmcheck/should_compile/T15450.stderr4
-rw-r--r--testsuite/tests/pmcheck/should_compile/T17218.stderr2
-rw-r--r--testsuite/tests/pmcheck/should_compile/T17729.stderr3
-rw-r--r--testsuite/tests/pmcheck/should_compile/T17836b.stderr2
-rw-r--r--testsuite/tests/pmcheck/should_compile/T17977.stderr3
-rw-r--r--testsuite/tests/pmcheck/should_compile/T18572.stderr3
-rw-r--r--testsuite/tests/pmcheck/should_compile/T18670.stderr3
-rw-r--r--testsuite/tests/pmcheck/should_compile/T18708.stderr2
-rw-r--r--testsuite/tests/pmcheck/should_compile/T18932.hs14
-rw-r--r--testsuite/tests/pmcheck/should_compile/T18932.stderr19
-rw-r--r--testsuite/tests/pmcheck/should_compile/T2204.stderr4
-rw-r--r--testsuite/tests/pmcheck/should_compile/T9951b.stderr2
-rw-r--r--testsuite/tests/pmcheck/should_compile/TooManyDeltas.stderr2
-rw-r--r--testsuite/tests/pmcheck/should_compile/all.T2
-rw-r--r--testsuite/tests/pmcheck/should_compile/pmc001.stderr4
-rw-r--r--testsuite/tests/pmcheck/should_compile/pmc005.stderr3
-rw-r--r--testsuite/tests/pmcheck/should_compile/pmc007.stderr7
-rw-r--r--testsuite/tests/pmcheck/should_compile/pmc009.stderr4
-rw-r--r--testsuite/tests/warnings/should_fail/WerrorFail.stderr3
-rw-r--r--testsuite/tests/warnings/should_fail/WerrorFail2.stderr2
57 files changed, 184 insertions, 120 deletions
diff --git a/compiler/GHC/HsToCore/Pmc.hs b/compiler/GHC/HsToCore/Pmc.hs
index 7af0d4605e..651f37f909 100644
--- a/compiler/GHC/HsToCore/Pmc.hs
+++ b/compiler/GHC/HsToCore/Pmc.hs
@@ -381,7 +381,10 @@ reportWarnings dflags ctx@(DsMatchContext kind loc) vars
case vars of -- See #11245
[] -> text "Guards do not cover entire pattern space"
_ -> let us = map (\nabla -> pprUncovered nabla vars) nablas
- in hang (text "Patterns not matched:") 4
+ pp_tys = pprQuotedList $ map idType vars
+ in hang
+ (text "Patterns of type" <+> pp_tys <+> text "not matched:")
+ 4
(vcat (take maxPatterns us) $$ dots maxPatterns us)
approx_msg = vcat
diff --git a/compiler/GHC/HsToCore/Pmc/Ppr.hs b/compiler/GHC/HsToCore/Pmc/Ppr.hs
index fea1ecfe39..3de6a14970 100644
--- a/compiler/GHC/HsToCore/Pmc/Ppr.hs
+++ b/compiler/GHC/HsToCore/Pmc/Ppr.hs
@@ -136,26 +136,13 @@ checkRefuts x = do
-- | Pretty print a variable, but remember to prettify the names of the variables
-- that refer to neg-literals. The ones that cannot be shown are printed as
--- underscores. Even with a type signature, if it's not too noisy.
+-- underscores.
pprPmVar :: PprPrec -> Id -> PmPprM SDoc
--- Type signature is "too noisy" by my definition if it needs to parenthesize.
--- I like "not matched: _ :: Proxy (DIdEnv (Id, SDoc))",
--- but I don't like "not matched: (_ :: stuff) (_:_) (_ :: Proxy (DIdEnv (Id, SDoc)))"
--- The useful information in the latter case is the constructor that we missed,
--- not the types of the wildcards in the places that aren't matched as a result.
pprPmVar prec x = do
nabla <- ask
case lookupSolution nabla x of
Just (PACA alt _tvs args) -> pprPmAltCon prec alt args
- Nothing -> fromMaybe typed_wildcard <$> checkRefuts x
- where
- -- if we have no info about the parameter and would just print a
- -- wildcard, also show its type.
- typed_wildcard
- | prec <= sigPrec
- = underscore <+> text "::" <+> ppr (idType x)
- | otherwise
- = underscore
+ Nothing -> fromMaybe underscore <$> checkRefuts x
pprPmAltCon :: PprPrec -> PmAltCon -> [Id] -> PmPprM SDoc
pprPmAltCon _prec (PmAltLit l) _ = pure (ppr l)
diff --git a/testsuite/tests/deSugar/should_compile/DsStrictWarn.stderr b/testsuite/tests/deSugar/should_compile/DsStrictWarn.stderr
index e5de14fda8..a7c76fff44 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: [-Wincomplete-uni-patterns]
Pattern match(es) are non-exhaustive
- In a pattern binding: Patterns not matched: []
+ In a pattern binding: Patterns of type ‘String’ not matched: []
diff --git a/testsuite/tests/deSugar/should_compile/GadtOverlap.stderr b/testsuite/tests/deSugar/should_compile/GadtOverlap.stderr
index 02f091ee36..e618c45c07 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: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘h’: Patterns not matched: T3
+ In an equation for ‘h’: Patterns of type ‘T a’ not matched: T3
diff --git a/testsuite/tests/deSugar/should_compile/T14135.stderr b/testsuite/tests/deSugar/should_compile/T14135.stderr
index ec0a340bcc..8674cbff66 100644
--- a/testsuite/tests/deSugar/should_compile/T14135.stderr
+++ b/testsuite/tests/deSugar/should_compile/T14135.stderr
@@ -1,4 +1,5 @@
T14135.hs:16:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘f’: Patterns not matched: Foo2 _
+ In an equation for ‘f’:
+ Patterns of type ‘Foo a’ not matched: Foo2 _
diff --git a/testsuite/tests/deSugar/should_compile/T14546a.stderr b/testsuite/tests/deSugar/should_compile/T14546a.stderr
index 5918a45cc7..684501223e 100644
--- a/testsuite/tests/deSugar/should_compile/T14546a.stderr
+++ b/testsuite/tests/deSugar/should_compile/T14546a.stderr
@@ -33,7 +33,7 @@ T14546a.hs:21:7: warning: [-Woverlapping-patterns (in -Wdefault)]
T14546a.hs:23:4: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: 0
+ In a case alternative: Patterns of type ‘Integer’ not matched: 0
T14546a.hs:24:7: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
@@ -45,7 +45,7 @@ T14546a.hs:25:7: warning: [-Woverlapping-patterns (in -Wdefault)]
T14546a.hs:27:4: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: 3
+ In a case alternative: Patterns of type ‘Integer’ not matched: 3
T14546a.hs:28:7: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
diff --git a/testsuite/tests/deSugar/should_compile/T14546d.stderr b/testsuite/tests/deSugar/should_compile/T14546d.stderr
index db5b9ca285..4e59e617dc 100644
--- a/testsuite/tests/deSugar/should_compile/T14546d.stderr
+++ b/testsuite/tests/deSugar/should_compile/T14546d.stderr
@@ -6,4 +6,4 @@ T14546d.hs:3:10: warning: [-Wmissing-methods (in -Wdefault)]
T14546d.hs:7:5: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: 3
+ In a case alternative: Patterns of type ‘D’ not matched: 3
diff --git a/testsuite/tests/deSugar/should_compile/T5455.stderr b/testsuite/tests/deSugar/should_compile/T5455.stderr
index 9c43612cca..ff2b578c65 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: [-Wincomplete-uni-patterns]
Pattern match(es) are non-exhaustive
- In a pattern binding: Patterns not matched: []
+ In a pattern binding: Patterns of type ‘String’ not matched: []
T5455.hs:13:13: warning: [-Wincomplete-uni-patterns]
Pattern match(es) are non-exhaustive
- In a pattern binding: Patterns not matched: []
+ In a pattern binding: Patterns of type ‘String’ not matched: []
diff --git a/testsuite/tests/dependent/should_compile/KindEqualities.stderr b/testsuite/tests/dependent/should_compile/KindEqualities.stderr
index c36ee98d91..2155dea765 100644
--- a/testsuite/tests/dependent/should_compile/KindEqualities.stderr
+++ b/testsuite/tests/dependent/should_compile/KindEqualities.stderr
@@ -2,7 +2,7 @@
KindEqualities.hs:25:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘zero’:
- Patterns not matched:
+ Patterns of type ‘TyRep a’ not matched:
TyApp (TyApp _ _) TyInt
TyApp (TyApp _ _) TyBool
TyApp (TyApp _ _) TyMaybe
diff --git a/testsuite/tests/driver/T8101.stderr b/testsuite/tests/driver/T8101.stderr
index a486f965e3..f9ede45f0b 100644
--- a/testsuite/tests/driver/T8101.stderr
+++ b/testsuite/tests/driver/T8101.stderr
@@ -2,6 +2,6 @@
T8101.hs:7:9: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘ABC’ not matched:
B
C
diff --git a/testsuite/tests/driver/T8101b.stderr b/testsuite/tests/driver/T8101b.stderr
index ea8bcf0c4d..ed93a37680 100644
--- a/testsuite/tests/driver/T8101b.stderr
+++ b/testsuite/tests/driver/T8101b.stderr
@@ -3,6 +3,6 @@
T8101b.hs:7:9: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘ABC’ not matched:
B
C
diff --git a/testsuite/tests/driver/werror.stderr b/testsuite/tests/driver/werror.stderr
index 2d9fd5324c..791c74352b 100644
--- a/testsuite/tests/driver/werror.stderr
+++ b/testsuite/tests/driver/werror.stderr
@@ -21,7 +21,7 @@ werror.hs:10:1: error: [-Wmissing-signatures (in -Wall), -Werror=missing-signatu
werror.hs:10:1: error: [-Wincomplete-patterns (in -Wextra), -Werror=incomplete-patterns]
Pattern match(es) are non-exhaustive
- In an equation for ‘f’: Patterns not matched: (_:_)
+ In an equation for ‘f’: Patterns of type ‘[a]’ not matched: (_:_)
werror.hs:11:1: error: [-Woverlapping-patterns (in -Wdefault), -Werror=overlapping-patterns]
Pattern match is redundant
diff --git a/testsuite/tests/ghci/prog018/prog018.stdout b/testsuite/tests/ghci/prog018/prog018.stdout
index ba8594dcf5..544ef8e671 100644
--- a/testsuite/tests/ghci/prog018/prog018.stdout
+++ b/testsuite/tests/ghci/prog018/prog018.stdout
@@ -5,7 +5,7 @@
A.hs:5:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘incompletePattern’:
- Patterns not matched: p where p is not one of {0}
+ Patterns of type ‘Int’ not matched: p where p is not one of {0}
A.hs:8:15: warning: [-Wunused-matches (in -Wextra)]
Defined but not used: ‘x’
diff --git a/testsuite/tests/parser/should_compile/T15139.stderr b/testsuite/tests/parser/should_compile/T15139.stderr
index 010bd7440c..b42cb23d27 100644
--- a/testsuite/tests/parser/should_compile/T15139.stderr
+++ b/testsuite/tests/parser/should_compile/T15139.stderr
@@ -1,21 +1,23 @@
T15139.hs:11:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘f1’: Patterns not matched: False
+ In an equation for ‘f1’:
+ Patterns of type ‘Bool’ not matched: False
|
11 | f1 True = case can'tHappen of {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
T15139.hs:12:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘f2’: Patterns not matched: False
+ In an equation for ‘f2’:
+ Patterns of type ‘Bool’ not matched: False
|
12 | f2 True = case can'tHappen of
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
T15139.hs:13:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘g’: Patterns not matched: False
+ In an equation for ‘g’: Patterns of type ‘Bool’ not matched: False
|
13 | g True = case () of () -> True
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/testsuite/tests/pmcheck/complete_sigs/T13964.stderr b/testsuite/tests/pmcheck/complete_sigs/T13964.stderr
index 606756a783..4005321236 100644
--- a/testsuite/tests/pmcheck/complete_sigs/T13964.stderr
+++ b/testsuite/tests/pmcheck/complete_sigs/T13964.stderr
@@ -1,4 +1,5 @@
T13964.hs:18:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘catchAll’: Patterns not matched: T
+ In an equation for ‘catchAll’:
+ Patterns of type ‘Boolean’ not matched: T
diff --git a/testsuite/tests/pmcheck/complete_sigs/T14059a.stderr b/testsuite/tests/pmcheck/complete_sigs/T14059a.stderr
index 4a52c97dfe..47a92504fb 100644
--- a/testsuite/tests/pmcheck/complete_sigs/T14059a.stderr
+++ b/testsuite/tests/pmcheck/complete_sigs/T14059a.stderr
@@ -1,8 +1,10 @@
T14059a.hs:20:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘wibble’: Patterns not matched: SFalse
+ In an equation for ‘wibble’:
+ Patterns of type ‘SBool z’ not matched: SFalse
T14059a.hs:23:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘wobble’: Patterns not matched: SFalse
+ In an equation for ‘wobble’:
+ Patterns of type ‘SBool z’ not matched: SFalse
diff --git a/testsuite/tests/pmcheck/complete_sigs/T17386.stderr b/testsuite/tests/pmcheck/complete_sigs/T17386.stderr
index 9b60c06636..6c60cf13c0 100644
--- a/testsuite/tests/pmcheck/complete_sigs/T17386.stderr
+++ b/testsuite/tests/pmcheck/complete_sigs/T17386.stderr
@@ -1,8 +1,8 @@
T17386.hs:11:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘f’: Patterns not matched: F
+ In an equation for ‘f’: Patterns of type ‘B’ not matched: F
T17386.hs:18:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘g’: Patterns not matched: T
+ In an equation for ‘g’: Patterns of type ‘B’ not matched: T
diff --git a/testsuite/tests/pmcheck/complete_sigs/completesig02.stderr b/testsuite/tests/pmcheck/complete_sigs/completesig02.stderr
index 6da127a674..dc24b31e63 100644
--- a/testsuite/tests/pmcheck/complete_sigs/completesig02.stderr
+++ b/testsuite/tests/pmcheck/complete_sigs/completesig02.stderr
@@ -1,4 +1,4 @@
completesig02.hs:10:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘a’: Patterns not matched: ()
+ In an equation for ‘a’: Patterns of type ‘()’ not matched: ()
diff --git a/testsuite/tests/pmcheck/complete_sigs/completesig04.stderr b/testsuite/tests/pmcheck/complete_sigs/completesig04.stderr
index a114d0199e..e04c570390 100644
--- a/testsuite/tests/pmcheck/complete_sigs/completesig04.stderr
+++ b/testsuite/tests/pmcheck/complete_sigs/completesig04.stderr
@@ -2,10 +2,11 @@
completesig04.hs:10:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘f’:
- Patterns not matched:
+ Patterns of type ‘T’ not matched:
B
C
completesig04.hs:12:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘g’: Patterns not matched: Nothing
+ In an equation for ‘g’:
+ Patterns of type ‘Maybe a’ not matched: Nothing
diff --git a/testsuite/tests/pmcheck/complete_sigs/completesig06.stderr b/testsuite/tests/pmcheck/complete_sigs/completesig06.stderr
index 8659a3b0aa..b993966789 100644
--- a/testsuite/tests/pmcheck/complete_sigs/completesig06.stderr
+++ b/testsuite/tests/pmcheck/complete_sigs/completesig06.stderr
@@ -1,29 +1,29 @@
completesig06.hs:13:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘m1’: Patterns not matched: B
+ In an equation for ‘m1’: Patterns of type ‘T’ not matched: B
completesig06.hs:16:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘m2’: Patterns not matched: A
+ In an equation for ‘m2’: Patterns of type ‘T’ not matched: A
completesig06.hs:20:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘m3’:
- Patterns not matched:
+ Patterns of type ‘T’ not matched:
A
B
completesig06.hs:23:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘m4’:
- Patterns not matched:
+ Patterns of type ‘T’, ‘S’ not matched:
A D
B D
completesig06.hs:29:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘m5’:
- Patterns not matched:
+ Patterns of type ‘T’, ‘S’ not matched:
A D
B D
diff --git a/testsuite/tests/pmcheck/complete_sigs/completesig07.stderr b/testsuite/tests/pmcheck/complete_sigs/completesig07.stderr
index b8e56892c9..1145cb850e 100644
--- a/testsuite/tests/pmcheck/complete_sigs/completesig07.stderr
+++ b/testsuite/tests/pmcheck/complete_sigs/completesig07.stderr
@@ -10,7 +10,7 @@ completesig07.hs:20:1: warning: [-Woverlapping-patterns (in -Wdefault)]
completesig07.hs:23:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘m3’:
- Patterns not matched:
+ Patterns of type ‘T’ not matched:
A
B
diff --git a/testsuite/tests/pmcheck/complete_sigs/completesig10.stderr b/testsuite/tests/pmcheck/complete_sigs/completesig10.stderr
index 36b367068c..dfdd29dec9 100644
--- a/testsuite/tests/pmcheck/complete_sigs/completesig10.stderr
+++ b/testsuite/tests/pmcheck/complete_sigs/completesig10.stderr
@@ -9,4 +9,4 @@ completesig10.hs:16:1: warning: [-Woverlapping-patterns (in -Wdefault)]
completesig10.hs:20:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘m2’: Patterns not matched: A
+ In an equation for ‘m2’: Patterns of type ‘T’ not matched: A
diff --git a/testsuite/tests/pmcheck/complete_sigs/completesig11.stderr b/testsuite/tests/pmcheck/complete_sigs/completesig11.stderr
index d7bf2f3079..1f02774757 100644
--- a/testsuite/tests/pmcheck/complete_sigs/completesig11.stderr
+++ b/testsuite/tests/pmcheck/complete_sigs/completesig11.stderr
@@ -1,4 +1,4 @@
completesig11.hs:14:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘m1’: Patterns not matched: B
+ In an equation for ‘m1’: Patterns of type ‘T’ not matched: B
diff --git a/testsuite/tests/pmcheck/should_compile/EmptyCase001.stderr b/testsuite/tests/pmcheck/should_compile/EmptyCase001.stderr
index c3c294b4e7..e3794c0405 100644
--- a/testsuite/tests/pmcheck/should_compile/EmptyCase001.stderr
+++ b/testsuite/tests/pmcheck/should_compile/EmptyCase001.stderr
@@ -1,15 +1,15 @@
EmptyCase001.hs:9:6: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: _ :: Int
+ In a case alternative: Patterns of type ‘Int’ not matched: _
EmptyCase001.hs:14:8: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘String’ not matched:
[]
(_:_)
EmptyCase001.hs:18:8: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: _ :: Char
+ In a case alternative: Patterns of type ‘Char’ not matched: _
diff --git a/testsuite/tests/pmcheck/should_compile/EmptyCase002.stderr b/testsuite/tests/pmcheck/should_compile/EmptyCase002.stderr
index d6c39ec4f7..af9411c6a3 100644
--- a/testsuite/tests/pmcheck/should_compile/EmptyCase002.stderr
+++ b/testsuite/tests/pmcheck/should_compile/EmptyCase002.stderr
@@ -1,22 +1,25 @@
EmptyCase002.hs:16:6: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: MkT _
+ In a case alternative: Patterns of type ‘T’ not matched: MkT _
EmptyCase002.hs:43:6: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘T1 B’ not matched:
MkT1 B1
MkT1 B2
EmptyCase002.hs:47:6: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘T1 (E Int)’ not matched:
MkT1 False
MkT1 True
EmptyCase002.hs:51:6: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: MkT1 (MkT2 (MkT1 D2))
+ In a case alternative:
+ Patterns of type ‘T1
+ (T2 (T1 (D (E Int) (E (E Int)))))’ not matched:
+ MkT1 (MkT2 (MkT1 D2))
diff --git a/testsuite/tests/pmcheck/should_compile/EmptyCase003.stderr b/testsuite/tests/pmcheck/should_compile/EmptyCase003.stderr
index d30cc52590..e9f6e27cd3 100644
--- a/testsuite/tests/pmcheck/should_compile/EmptyCase003.stderr
+++ b/testsuite/tests/pmcheck/should_compile/EmptyCase003.stderr
@@ -1,12 +1,12 @@
EmptyCase003.hs:15:6: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: _ :: A a
+ In a case alternative: Patterns of type ‘A a’ not matched: _
EmptyCase003.hs:32:6: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: _ :: C a
+ In a case alternative: Patterns of type ‘C a’ not matched: _
EmptyCase003.hs:37:6: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: _ :: C Int
+ In a case alternative: Patterns of type ‘C Int’ not matched: _
diff --git a/testsuite/tests/pmcheck/should_compile/EmptyCase004.stderr b/testsuite/tests/pmcheck/should_compile/EmptyCase004.stderr
index d807b51789..c80a391d98 100644
--- a/testsuite/tests/pmcheck/should_compile/EmptyCase004.stderr
+++ b/testsuite/tests/pmcheck/should_compile/EmptyCase004.stderr
@@ -1,37 +1,37 @@
EmptyCase004.hs:15:6: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: A2
+ In a case alternative: Patterns of type ‘A Bool’ not matched: A2
EmptyCase004.hs:19:6: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘A a’ not matched:
A1
A2
EmptyCase004.hs:31:8: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: B1 _
+ In a case alternative: Patterns of type ‘B a a’ not matched: B1 _
EmptyCase004.hs:35:6: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘B a b’ not matched:
B1 _
B2
EmptyCase004.hs:47:6: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘A a’ not matched:
A1
A2
EmptyCase004.hs:50:9: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: B2
+ In a case alternative: Patterns of type ‘B a b’ not matched: B2
EmptyCase004.hs:51:9: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: B1 _
+ In a case alternative: Patterns of type ‘B a b’ not matched: B1 _
diff --git a/testsuite/tests/pmcheck/should_compile/EmptyCase005.stderr b/testsuite/tests/pmcheck/should_compile/EmptyCase005.stderr
index 9c346b9c8b..97514f67be 100644
--- a/testsuite/tests/pmcheck/should_compile/EmptyCase005.stderr
+++ b/testsuite/tests/pmcheck/should_compile/EmptyCase005.stderr
@@ -1,33 +1,35 @@
EmptyCase005.hs:24:8: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Void3 _
+ In a case alternative:
+ Patterns of type ‘Void3’ not matched: Void3 _
EmptyCase005.hs:67:8: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘T ()’ not matched:
T1
T2
EmptyCase005.hs:73:8: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘T Bool’ not matched:
MkTBool False
MkTBool True
EmptyCase005.hs:79:8: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: MkTInt _
+ In a case alternative:
+ Patterns of type ‘T Int’ not matched: MkTInt _
EmptyCase005.hs:91:8: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘G Int’ not matched:
MkV False
MkV True
EmptyCase005.hs:101:8: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: _ :: H Int
+ In a case alternative: Patterns of type ‘H Int’ not matched: _
diff --git a/testsuite/tests/pmcheck/should_compile/EmptyCase006.stderr b/testsuite/tests/pmcheck/should_compile/EmptyCase006.stderr
index e47e1eea47..a34d0f5e5e 100644
--- a/testsuite/tests/pmcheck/should_compile/EmptyCase006.stderr
+++ b/testsuite/tests/pmcheck/should_compile/EmptyCase006.stderr
@@ -1,12 +1,13 @@
EmptyCase006.hs:18:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Foo1 MkGA1
+ In a case alternative:
+ Patterns of type ‘Foo1 Int’ not matched: Foo1 MkGA1
EmptyCase006.hs:26:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘Foo1 a’ not matched:
Foo1 MkGA1
Foo1 (MkGA2 _)
Foo1 MkGA3
diff --git a/testsuite/tests/pmcheck/should_compile/EmptyCase007.stderr b/testsuite/tests/pmcheck/should_compile/EmptyCase007.stderr
index 0ab13ca321..6b60fd76ad 100644
--- a/testsuite/tests/pmcheck/should_compile/EmptyCase007.stderr
+++ b/testsuite/tests/pmcheck/should_compile/EmptyCase007.stderr
@@ -1,27 +1,31 @@
EmptyCase007.hs:21:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Foo2 _
+ In a case alternative:
+ Patterns of type ‘Foo2 a’ not matched: Foo2 _
EmptyCase007.hs:25:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Foo2 _
+ In a case alternative:
+ Patterns of type ‘Foo2 (a, a)’ not matched: Foo2 _
EmptyCase007.hs:33:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Foo2 (_, _)
+ In a case alternative:
+ Patterns of type ‘Foo2 Int’ not matched: Foo2 (_, _)
EmptyCase007.hs:37:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Foo2 _
+ In a case alternative:
+ Patterns of type ‘Foo2 Char’ not matched: Foo2 _
EmptyCase007.hs:44:17: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: _ :: FA Char
+ In a case alternative: Patterns of type ‘FA Char’ not matched: _
EmptyCase007.hs:48:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘Foo2 [Int]’ not matched:
Foo2 []
Foo2 (_:_)
diff --git a/testsuite/tests/pmcheck/should_compile/EmptyCase008.stderr b/testsuite/tests/pmcheck/should_compile/EmptyCase008.stderr
index 0d21dbfaca..5563a599b6 100644
--- a/testsuite/tests/pmcheck/should_compile/EmptyCase008.stderr
+++ b/testsuite/tests/pmcheck/should_compile/EmptyCase008.stderr
@@ -2,18 +2,21 @@
EmptyCase008.hs:17:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘Foo3 Int’ not matched:
Foo3 (MkDA1 _)
Foo3 MkDA2
EmptyCase008.hs:21:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Foo3 _
+ In a case alternative:
+ Patterns of type ‘Foo3 a’ not matched: Foo3 _
EmptyCase008.hs:40:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Foo4 MkDB1
+ In a case alternative:
+ Patterns of type ‘Foo4 Int ()’ not matched: Foo4 MkDB1
EmptyCase008.hs:48:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Foo4 _
+ In a case alternative:
+ Patterns of type ‘Foo4 a b’ not matched: Foo4 _
diff --git a/testsuite/tests/pmcheck/should_compile/EmptyCase009.stderr b/testsuite/tests/pmcheck/should_compile/EmptyCase009.stderr
index de68e6dae8..cd10631c6c 100644
--- a/testsuite/tests/pmcheck/should_compile/EmptyCase009.stderr
+++ b/testsuite/tests/pmcheck/should_compile/EmptyCase009.stderr
@@ -1,12 +1,14 @@
EmptyCase009.hs:21:9: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Bar _
+ In a case alternative: Patterns of type ‘Bar f’ not matched: Bar _
EmptyCase009.hs:33:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Bar MkDB2_u
+ In a case alternative:
+ Patterns of type ‘Bar (DB ())’ not matched: Bar MkDB2_u
EmptyCase009.hs:42:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Bar MkGB3
+ In a case alternative:
+ Patterns of type ‘Bar GB’ not matched: Bar MkGB3
diff --git a/testsuite/tests/pmcheck/should_compile/EmptyCase010.stderr b/testsuite/tests/pmcheck/should_compile/EmptyCase010.stderr
index 4b374a0c24..9b4c65e4ac 100644
--- a/testsuite/tests/pmcheck/should_compile/EmptyCase010.stderr
+++ b/testsuite/tests/pmcheck/should_compile/EmptyCase010.stderr
@@ -2,41 +2,46 @@
EmptyCase010.hs:24:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘Baz GC a’ not matched:
Baz MkGC1
Baz (MkGC2 _)
EmptyCase010.hs:28:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Baz MkGC1
+ In a case alternative:
+ Patterns of type ‘Baz GC 'T1’ not matched: Baz MkGC1
EmptyCase010.hs:37:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘Baz GD Maybe’ not matched:
Baz MkGD1
Baz MkGD3
EmptyCase010.hs:41:9: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Baz MkGD3
+ In a case alternative:
+ Patterns of type ‘Baz GD (Either Int)’ not matched: Baz MkGD3
EmptyCase010.hs:45:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘Baz GD f’ not matched:
Baz MkGD1
Baz MkGD2
Baz MkGD3
EmptyCase010.hs:57:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Baz _
+ In a case alternative:
+ Patterns of type ‘Baz (DC ()) a’ not matched: Baz _
EmptyCase010.hs:69:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Baz MkDC2
+ In a case alternative:
+ Patterns of type ‘Baz (DC Bool) [Int]’ not matched: Baz MkDC2
EmptyCase010.hs:73:9: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: Baz _
+ In a case alternative:
+ Patterns of type ‘Baz f a’ not matched: Baz _
diff --git a/testsuite/tests/pmcheck/should_compile/T10746.stderr b/testsuite/tests/pmcheck/should_compile/T10746.stderr
index deb25953e2..fab96e5fde 100644
--- a/testsuite/tests/pmcheck/should_compile/T10746.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T10746.stderr
@@ -2,6 +2,6 @@
T10746.hs:9:10: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘Bool’ not matched:
False
True
diff --git a/testsuite/tests/pmcheck/should_compile/T11336b.stderr b/testsuite/tests/pmcheck/should_compile/T11336b.stderr
index f5fc88402d..4a6547d509 100644
--- a/testsuite/tests/pmcheck/should_compile/T11336b.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T11336b.stderr
@@ -1,4 +1,5 @@
T11336b.hs:25:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘fun’: Patterns not matched: Proxy
+ In an equation for ‘fun’:
+ Patterns of type ‘Proxy a’ not matched: Proxy
diff --git a/testsuite/tests/pmcheck/should_compile/T11822.stderr b/testsuite/tests/pmcheck/should_compile/T11822.stderr
index 569cc74e99..e7472626bf 100644
--- a/testsuite/tests/pmcheck/should_compile/T11822.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T11822.stderr
@@ -9,7 +9,8 @@ T11822.hs:33:1: warning:
T11822.hs:33:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘mkTreeNode’:
- Patterns not matched:
+ Patterns of type ‘prefix’, ‘Seq SiblingDependencies’,
+ ‘Set prefix’, ‘Depth’ not matched:
_ (Data.Sequence.Internal.Seq Data.Sequence.Internal.EmptyT)
(Data.Set.Internal.Bin _ _ _ _) (Depth _)
_ (Data.Sequence.Internal.Seq Data.Sequence.Internal.EmptyT)
diff --git a/testsuite/tests/pmcheck/should_compile/T15305.stderr b/testsuite/tests/pmcheck/should_compile/T15305.stderr
index e760a2c884..de682464b7 100644
--- a/testsuite/tests/pmcheck/should_compile/T15305.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T15305.stderr
@@ -1,4 +1,5 @@
T15305.hs:48:23: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: MkAbyss _
+ In a case alternative:
+ Patterns of type ‘Abyss’ not matched: MkAbyss _
diff --git a/testsuite/tests/pmcheck/should_compile/T15450.stderr b/testsuite/tests/pmcheck/should_compile/T15450.stderr
index e9a320fb3c..2ef488970d 100644
--- a/testsuite/tests/pmcheck/should_compile/T15450.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T15450.stderr
@@ -2,10 +2,10 @@
T15450.hs:6:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘Bool’ not matched:
False
True
T15450.hs:9:7: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: False
+ In a case alternative: Patterns of type ‘Bool’ not matched: False
diff --git a/testsuite/tests/pmcheck/should_compile/T17218.stderr b/testsuite/tests/pmcheck/should_compile/T17218.stderr
index 25a74b536c..a8ac1b9ab8 100644
--- a/testsuite/tests/pmcheck/should_compile/T17218.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T17218.stderr
@@ -1,4 +1,4 @@
T17218.hs:11:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘f’: Patterns not matched: P
+ In an equation for ‘f’: Patterns of type ‘T’ not matched: P
diff --git a/testsuite/tests/pmcheck/should_compile/T17729.stderr b/testsuite/tests/pmcheck/should_compile/T17729.stderr
index ac4f31fcfa..edc7900388 100644
--- a/testsuite/tests/pmcheck/should_compile/T17729.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T17729.stderr
@@ -1,4 +1,5 @@
T17729.hs:5:17: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: ((Just _), ())
+ In a case alternative:
+ Patterns of type ‘(Maybe a, ())’ not matched: ((Just _), ())
diff --git a/testsuite/tests/pmcheck/should_compile/T17836b.stderr b/testsuite/tests/pmcheck/should_compile/T17836b.stderr
index cad78da8da..ba590aaf85 100644
--- a/testsuite/tests/pmcheck/should_compile/T17836b.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T17836b.stderr
@@ -2,7 +2,7 @@
T17836b.hs:11:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘massive’:
- Patterns not matched:
+ Patterns of type ‘T recty’ not matched:
T _
P (T _)
P (P (T _))
diff --git a/testsuite/tests/pmcheck/should_compile/T17977.stderr b/testsuite/tests/pmcheck/should_compile/T17977.stderr
index 43aaa6f735..f9cb656f42 100644
--- a/testsuite/tests/pmcheck/should_compile/T17977.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T17977.stderr
@@ -2,7 +2,8 @@
T17977.hs:31:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘f’:
- Patterns not matched:
+ Patterns of type ‘SNat m’, ‘SNat n’, ‘SNat o’,
+ ‘R m n o’ not matched:
SZ SZ SZ _
SZ SZ (SS _) _
SZ (SS _) SZ _
diff --git a/testsuite/tests/pmcheck/should_compile/T18572.stderr b/testsuite/tests/pmcheck/should_compile/T18572.stderr
index 15d9f7c5b5..a5d14d5c33 100644
--- a/testsuite/tests/pmcheck/should_compile/T18572.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T18572.stderr
@@ -13,4 +13,5 @@ T18572.hs:12:1: warning: [-Woverlapping-patterns (in -Wdefault)]
T18572.hs:12:1: warning: [-Wincomplete-uni-patterns]
Pattern match(es) are non-exhaustive
- In a pattern binding: Patterns not matched: SFalse
+ In a pattern binding:
+ Patterns of type ‘SBool 'False’ not matched: SFalse
diff --git a/testsuite/tests/pmcheck/should_compile/T18670.stderr b/testsuite/tests/pmcheck/should_compile/T18670.stderr
index 6b7f6cc207..4929374740 100644
--- a/testsuite/tests/pmcheck/should_compile/T18670.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T18670.stderr
@@ -1,4 +1,5 @@
T18670.hs:16:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘f’: Patterns not matched: TBool _
+ In an equation for ‘f’:
+ Patterns of type ‘T a’, ‘a :~: Int’ not matched: TBool _
diff --git a/testsuite/tests/pmcheck/should_compile/T18708.stderr b/testsuite/tests/pmcheck/should_compile/T18708.stderr
index 5949d92970..ac838c3650 100644
--- a/testsuite/tests/pmcheck/should_compile/T18708.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T18708.stderr
@@ -2,4 +2,4 @@
T18708.hs:18:3: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched: p where p is not one of {"y"}
+ Patterns of type ‘Text’ not matched: p where p is not one of {"y"}
diff --git a/testsuite/tests/pmcheck/should_compile/T18932.hs b/testsuite/tests/pmcheck/should_compile/T18932.hs
new file mode 100644
index 0000000000..ada977a237
--- /dev/null
+++ b/testsuite/tests/pmcheck/should_compile/T18932.hs
@@ -0,0 +1,14 @@
+{-# OPTIONS_GHC -fforce-recomp -Wall -Wno-missing-signatures #-}
+
+module T18932 where
+
+import Data.Void
+
+data T a = MkT1 Int | MkT2 !a
+
+f (MkT1 x) = x
+f (MkT2 y) = absurd y
+
+f' (MkT1 x) = x
+
+g (MkT1 x) (MkT1 _) (MkT1 _) = x
diff --git a/testsuite/tests/pmcheck/should_compile/T18932.stderr b/testsuite/tests/pmcheck/should_compile/T18932.stderr
new file mode 100644
index 0000000000..7f6d813ada
--- /dev/null
+++ b/testsuite/tests/pmcheck/should_compile/T18932.stderr
@@ -0,0 +1,19 @@
+
+T18932.hs:10:1: warning: [-Woverlapping-patterns (in -Wdefault)]
+ Pattern match is redundant
+ In an equation for ‘f’: f (MkT2 y) = ...
+
+T18932.hs:12:1: warning: [-Wincomplete-patterns (in -Wextra)]
+ Pattern match(es) are non-exhaustive
+ In an equation for ‘f'’:
+ Patterns of type ‘T a’ not matched: MkT2 _
+
+T18932.hs:14:1: warning: [-Wincomplete-patterns (in -Wextra)]
+ Pattern match(es) are non-exhaustive
+ In an equation for ‘g’:
+ Patterns of type ‘T a’, ‘T a’, ‘T a’ not matched:
+ (MkT2 _) (MkT1 _) (MkT1 _)
+ (MkT2 _) (MkT1 _) (MkT2 _)
+ (MkT2 _) (MkT2 _) (MkT1 _)
+ (MkT2 _) (MkT2 _) (MkT2 _)
+ ...
diff --git a/testsuite/tests/pmcheck/should_compile/T2204.stderr b/testsuite/tests/pmcheck/should_compile/T2204.stderr
index 7b5a2b52f7..82988e669c 100644
--- a/testsuite/tests/pmcheck/should_compile/T2204.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T2204.stderr
@@ -2,7 +2,7 @@
T2204.hs:6:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘f’:
- Patterns not matched:
+ Patterns of type ‘String’ not matched:
[]
[p] where p is not one of {'0'}
(p:_:_) where p is not one of {'0'}
@@ -12,4 +12,4 @@ T2204.hs:6:1: warning: [-Wincomplete-patterns (in -Wextra)]
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}
+ Patterns of type ‘Int’ 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 c9536b3160..65198db65f 100644
--- a/testsuite/tests/pmcheck/should_compile/T9951b.stderr
+++ b/testsuite/tests/pmcheck/should_compile/T9951b.stderr
@@ -2,7 +2,7 @@
T9951b.hs:7:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘f’:
- Patterns not matched:
+ Patterns of type ‘String’ not matched:
[]
[p] where p is not one of {'a'}
(p:_:_) where p is not one of {'a'}
diff --git a/testsuite/tests/pmcheck/should_compile/TooManyDeltas.stderr b/testsuite/tests/pmcheck/should_compile/TooManyDeltas.stderr
index 2fe93d32d9..e8c992b527 100644
--- a/testsuite/tests/pmcheck/should_compile/TooManyDeltas.stderr
+++ b/testsuite/tests/pmcheck/should_compile/TooManyDeltas.stderr
@@ -9,7 +9,7 @@ TooManyDeltas.hs:14:1: warning:
TooManyDeltas.hs:14:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘f’:
- Patterns not matched:
+ Patterns of type ‘T’, ‘T’ not matched:
A A
A B
B A
diff --git a/testsuite/tests/pmcheck/should_compile/all.T b/testsuite/tests/pmcheck/should_compile/all.T
index e7f3667ea7..40b59b2fd3 100644
--- a/testsuite/tests/pmcheck/should_compile/all.T
+++ b/testsuite/tests/pmcheck/should_compile/all.T
@@ -158,6 +158,8 @@ test('T18670', normal, compile,
['-fwarn-incomplete-patterns -fwarn-overlapping-patterns'])
test('T18708', normal, compile,
['-fwarn-incomplete-patterns -fwarn-overlapping-patterns'])
+test('T18932', normal, compile,
+ ['-fwarn-incomplete-patterns -fwarn-overlapping-patterns'])
# Other tests
test('pmc001', [], compile,
diff --git a/testsuite/tests/pmcheck/should_compile/pmc001.stderr b/testsuite/tests/pmcheck/should_compile/pmc001.stderr
index 9cd2e255ce..6f15444777 100644
--- a/testsuite/tests/pmcheck/should_compile/pmc001.stderr
+++ b/testsuite/tests/pmcheck/should_compile/pmc001.stderr
@@ -2,7 +2,7 @@
pmc001.hs:14:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘f’:
- Patterns not matched:
+ Patterns of type ‘T [a]’, ‘T [a]’ not matched:
MkT1 MkT3
(MkT2 _) MkT3
MkT3 MkT1
@@ -11,7 +11,7 @@ pmc001.hs:14:1: warning: [-Wincomplete-patterns (in -Wextra)]
pmc001.hs:19:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘g’:
- Patterns not matched:
+ Patterns of type ‘T [a]’, ‘T [a]’ not matched:
MkT1 MkT3
(MkT2 _) MkT3
MkT3 MkT1
diff --git a/testsuite/tests/pmcheck/should_compile/pmc005.stderr b/testsuite/tests/pmcheck/should_compile/pmc005.stderr
index b7b9cac5f3..8cc9eaffcb 100644
--- a/testsuite/tests/pmcheck/should_compile/pmc005.stderr
+++ b/testsuite/tests/pmcheck/should_compile/pmc005.stderr
@@ -1,7 +1,8 @@
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
+ In an equation for ‘foo’:
+ Patterns of type ‘T c’, ‘T c’ not matched: TBool TBool
pmc005.hs:12:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match has inaccessible right hand side
diff --git a/testsuite/tests/pmcheck/should_compile/pmc007.stderr b/testsuite/tests/pmcheck/should_compile/pmc007.stderr
index 9a3fe6efdc..1593f85f7f 100644
--- a/testsuite/tests/pmcheck/should_compile/pmc007.stderr
+++ b/testsuite/tests/pmcheck/should_compile/pmc007.stderr
@@ -2,12 +2,13 @@
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 {"ab", "ac"}
+ Patterns of type ‘a’ not matched:
+ p where p is not one of {"ab", "ac"}
pmc007.hs:12:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In an equation for ‘g’:
- Patterns not matched:
+ Patterns of type ‘String’ not matched:
[]
[p] where p is not one of {'a'}
(p:_:_) where p is not one of {'a'}
@@ -17,7 +18,7 @@ pmc007.hs:12:1: warning: [-Wincomplete-patterns (in -Wextra)]
pmc007.hs:18:11: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
In a case alternative:
- Patterns not matched:
+ Patterns of type ‘String’ not matched:
[]
[p] where p is not one of {'a'}
(p:_:_) where p is not one of {'a'}
diff --git a/testsuite/tests/pmcheck/should_compile/pmc009.stderr b/testsuite/tests/pmcheck/should_compile/pmc009.stderr
index 9614f2497b..6f1849a25f 100644
--- a/testsuite/tests/pmcheck/should_compile/pmc009.stderr
+++ b/testsuite/tests/pmcheck/should_compile/pmc009.stderr
@@ -1,4 +1,6 @@
pmc009.hs:6:1: warning: [-Wincomplete-patterns (in -Wextra)]
Pattern match(es) are non-exhaustive
- In an equation for ‘addPatSynSelector’: Patterns not matched: L _ _
+ In an equation for ‘addPatSynSelector’:
+ Patterns of type ‘GenLocated l (HsBindLR idL idR)’ not matched:
+ L _ _
diff --git a/testsuite/tests/warnings/should_fail/WerrorFail.stderr b/testsuite/tests/warnings/should_fail/WerrorFail.stderr
index 8b96c483f7..03e93567bc 100644
--- a/testsuite/tests/warnings/should_fail/WerrorFail.stderr
+++ b/testsuite/tests/warnings/should_fail/WerrorFail.stderr
@@ -1,4 +1,5 @@
WerrorFail.hs:6:1: error: [-Wincomplete-patterns (in -Wextra), -Werror=incomplete-patterns]
Pattern match(es) are non-exhaustive
- In an equation for ‘foo’: Patterns not matched: Just _
+ In an equation for ‘foo’:
+ Patterns of type ‘Maybe a’ not matched: Just _
diff --git a/testsuite/tests/warnings/should_fail/WerrorFail2.stderr b/testsuite/tests/warnings/should_fail/WerrorFail2.stderr
index afbcd61374..66e99b9bbb 100644
--- a/testsuite/tests/warnings/should_fail/WerrorFail2.stderr
+++ b/testsuite/tests/warnings/should_fail/WerrorFail2.stderr
@@ -4,7 +4,7 @@ WerrorFail2.hs:15:1: warning: [-Wmissing-signatures (in -Wall)]
WerrorFail2.hs:15:10: error: [-Wincomplete-patterns (in -Wextra), -Werror=incomplete-patterns]
Pattern match(es) are non-exhaustive
- In a case alternative: Patterns not matched: C2 _
+ In a case alternative: Patterns of type ‘S’ not matched: C2 _
WerrorFail2.hs:19:1: warning: [-Wmissing-signatures (in -Wall)]
Top-level binding with no type signature: printRec :: IO ()