foreign exports not taken into account when calculating -fwarn-unused-imports
Here we have a program that imports and uses liftM
from Control.Monad
, but only as a result of being used in the definition of a function that is foreign exported.
module Foo () where
import Control.Monad (liftM)
foo :: IO ()
foo = id `liftM` return ()
foreign export ccall "hs_foo"
foo :: IO ()
GHC 6.6 and HEAD report:
foo.hs:3:0:
Warning: Module `Control.Monad' is imported, but nothing from it is used,
except perhaps instances visible in `Control.Monad'
To suppress this warning, use: import Control.Monad()
So I suppose all that needs to happen is to add in foreign exports as roots when building the usage graph.
Trac metadata
Trac field | Value |
---|---|
Version | 6.7 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | Unknown |
Architecture | Unknown |