RE: Request: suppress specific warnings at specific places

GHC's excellent warnings are very helpful. They would be somewhat more so if it were possible to suppress a warning about a specific bit of code. One possible syntax (to which I gave no commitment) would be
{-# WOFF "non-exhaustive pattern matches" #-} <offending code> {-# WON "non-exhaustive pattern matches" #-}
. Another would be
{-# WOFF 523 #-} <offending code> {-# WON 523 #-}
where 523 is a warning number emitted with the warning message.
This would be particularly useful with the recently granted wish for -Werror.
This would be nice, but it would be tricky to implement: declarations have to be tagged with a list of "exceptions" to the prevailing warning settings. I doubt we'll do this any time soon, but patches are welcome as usual... (of course, the workaround is to put the offending code into a module of its own, and use OPTIONS to turn off the appropriate warnings). Cheers, SImon

If the switches take affect at the line granularity there would seem to be a straightforward implementation that's orthogonal to most everything else: store the excluded regions in separate data structure and check that data structure before printing a message. mike
GHC's excellent warnings are very helpful. They would be somewhat more so if it were possible to suppress a warning about a specific bit of code. One possible syntax (to which I gave no commitment) would be
{-# WOFF "non-exhaustive pattern matches" #-} <offending code> {-# WON "non-exhaustive pattern matches" #-}
. Another would be
{-# WOFF 523 #-} <offending code> {-# WON 523 #-}
where 523 is a warning number emitted with the warning message.
This would be particularly useful with the recently granted wish for -Werror.
This would be nice, but it would be tricky to implement: declarations have to be tagged with a list of "exceptions" to the prevailing warning settings. I doubt we'll do this any time soon, but patches are welcome as usual...
(of course, the workaround is to put the offending code into a module of its own, and use OPTIONS to turn off the appropriate warnings).
Cheers, SImon

I wrote:
GHC's excellent warnings are very helpful. They would be somewhat more so if it were possible to suppress a warning about a specific bit of code
Then "Simon Marlow"
(of course, the workaround is to put the offending code into a module of its own, and use OPTIONS to turn off the appropriate warnings).
This doesn't seem to work (easily) for me. I want -Wall applied to all my source, so give it on the command line. Because the OPTIONS options get prepended, the -Wall seems to win out. :(. I could add -Wall at the top of all my source files, but that's unappealing. If GHC provided a way to have a command-line options appear before the OPTION options in the final list, that would work. mike
participants (2)
-
Mike Gunter
-
Simon Marlow