[GHC] #15393: Regression: Detection of unused imports is imprecise (since GHC 8.0.1)

GHC ghc-devs at haskell.org
Mon Jul 16 05:59:19 UTC 2018


#15393: Regression: Detection of unused imports is imprecise (since GHC 8.0.1)
-------------------------------------+-------------------------------------
           Reporter:  SimonHengel    |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:  8.6.1
          Component:  Compiler       |           Version:  8.4.1
           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:
-------------------------------------+-------------------------------------
 GHCs detection of unused imports used to be very precise.  But apparently
 this changed with GHC 8.0.1.  I already noticed for a while that there is
 something fishy going on and finally came up with a minimal example.

 == Steps to reproduce:

 {{{#!hs
 -- Bar.hs
 module Bar (bar, module Control.Monad) where

 import Control.Monad

 bar :: Integer
 bar = 23
 }}}

 {{{#!hs
 -- Foo.hs
 module Foo where

 import Bar
 import Control.Monad (forM_)

 foo :: Monad m => [a] -> (a -> m ()) -> m ()
 foo = forM_

 baz :: Integer
 baz = bar
 }}}

 {{{
 $ ghci -Wall -Werror Foo.hs
 }}}

 **Expected result:** The program is reject.

 **Actual result:** The program was reject by GHC < 8.0.1, however later
 versions of GHC accept the program.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15393>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list