[GHC] #7408: Do not warn on unused newtype constructors when used with FFI
GHC
cvs-ghc at haskell.org
Tue Nov 13 12:16:04 CET 2012
#7408: Do not warn on unused newtype constructors when used with FFI
-----------------------------+----------------------------------------------
Reporter: SimonHengel | Owner:
Type: feature request | Status: new
Priority: normal | Component: Compiler
Version: 7.6.1 | Keywords:
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: None/Unknown | Blockedby:
Blocking: | Related:
-----------------------------+----------------------------------------------
One of the things I love about GHC are the accurate warnings about
unused code. This makes refactoring a joy and prevents dead code that
is so common in large Java/C++/etc. projects.
It's quite rare that it gets in your way, but one situation where this
can happen is with FFI code. Here is an example:
{{{
module SomeModule (Context, mkContext) where
import Foreign
newtype Context = Context (Ptr ())
foreign import ccall mkContext :: IO Context
}}}
Here GHC warns about the unused newtype consructor.
There are a couple of workarounds that you could use to make this code
-Wall sane. But I think they either leak more information about the
Context type, or they require an internal "Types" module (which adds
maintenance costs and decreases code locality).
I think from a users perspective it would be desirable to omit warnings
about unused newtype constructors if the newtype is used in a foreign
import declaration.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7408>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list