#12067: warn-unused-imports does not detect coersions -------------------------------------+------------------------------------- Reporter: crockeea | Owner: Type: bug | Status: merge Priority: normal | Milestone: 8.0.2 Component: Compiler | Version: 7.10.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: Incorrect | Test Case: warning at compile-time | typecheck/should_compile/T12067 Blocked By: | Blocking: Related Tickets: #10347 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by Ben Gamari <ben@…>): In [changeset:"6c28f24aa8202f79db49b85b815011703d647fd9/ghc" 6c28f24/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="6c28f24aa8202f79db49b85b815011703d647fd9" Deal correctly with unused imports for 'coerce' We only do newtype unwrapping for Coercible constraints if the newtype's data constructor is in scope. We were trying to record the fact that the data constructor was thereby 'used', so that an import statement would not be flagged as unnecsssary (by -Wunused-imports). But the code was simply wrong. It was wrong because it assumed that only one level of unwrapping happened, whereas tcTopNormaliseNewTypeTF_maybe actually unwraps multiple layers. So we need to return a /list/ of data constructors that are used. This entailed a bit of refactoring, as usual. Fixes Trac #12067 (cherry picked from commit 23b80ac41cc945cea0fc6ff9ade6b4be8aa81b7f) }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12067#comment:5> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler