wrong warning on incomplete case analysis in conjunction with empty data declarations
I load the following code into GHCi with warnings enabled (-Wall)
{-# LANGUAGE EmptyDataDecls #-}
data Empty
data EitherStrict a b = LeftStrict !a | RightStrict !b
test :: Char
test =
case undefined :: EitherStrict Empty Char of
-- LeftStrict _ -> undefined
RightStrict b -> b
I get the warning:
CaseOfEmptyData.hs:9:3:
Warning: Pattern match(es) are non-exhaustive
In a case alternative: Patterns not matched: LeftStrict _
I think this warning is wrong, since the LeftStrict case cannot happen. Am I right?
This may be related to #2431 (closed).
This problem is of minor priority for me. I found that in the original problem EmptyDataDecls would not helped me at all, and I found a better solution in this particular case.
Trac metadata
Trac field | Value |
---|---|
Version | 6.12.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |