
#11253: Duplicate warnings for pattern guards and relevant features (e.g. View Patterns) -------------------------------------+------------------------------------- Reporter: gkaracha | Owner: gkaracha Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.11 Keywords: pattern | Operating System: Unknown/Multiple matching, exhaustiveness | Architecture: | Type of failure: Incorrect Unknown/Multiple | warning at compile-time Test Case: | Blocked By: Blocking: | Related Tickets: #595 Differential Rev(s): | Wiki Page: | PatternMatchCheck, | PatternMatchCheckImplementation -------------------------------------+------------------------------------- There are some cases where the new exhaustiveness checker emits duplicate warnings. E.g. for `f`: {{{#!hs f :: Bool -> Bool -> () f (not -> True) (not -> False) = () }}} we get: {{{ DuplicateWarn.hs:6:1: warning: Pattern match(es) are non-exhaustive In an equation for âfâ: Patterns not matched: _ _ -- represents (not -> False) _ _ _ -- represents (not -> True) (not -> True) }}} As indicated in the comments, the two comments represent different missing cases, but since we do not print the additional information, they look alike. It would be better to either: * Give additional information to the user to distinguish between the two or * Print a single warning `(_ _)` I cannot think of a nice solution to this yet but I will keep thinking about it. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11253 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler