
#15744: Existence of complete pattern synonym hides unrelated incomplete pattern warning -------------------------------------+------------------------------------- Reporter: Taneb | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.4.3 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: Incorrect Unknown/Multiple | error/warning at compile-time Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- This example {{{#!hs {-# LANGUAGE PatternSynonyms #-} pattern Foo :: a -> b -> (a, b) pattern Foo a b = (a, b) {-# complete Foo #-} main :: IO () main = case ((), Nothing :: Maybe Integer) of ((), Just x) -> print x }}} doesn't give a warning for the incomplete pattern match in {{{main}}}, which doesn't involve textually the pattern synonym {{{Foo}}}. Removing the complete pragma or changing the expression being matched on to even {{{(,) () (Nothing :: Maybe Integer)}}} allows the warning -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15744 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler