Skip to content
  • Simon Peyton Jones's avatar
    Fix unused-import warnings · 2dcebe69
    Simon Peyton Jones authored
    This patch fixes a fairly long-standing bug (dating back to 2015) in
    RdrName.bestImport, namely
    
       commit 9376249b
       Author: Simon Peyton Jones <simonpj@microsoft.com>
       Date:   Wed Oct 28 17:16:55 2015 +0000
    
       Fix unused-import stuff in a better way
    
    In that patch got the sense of the comparison back to front, and
    thereby failed to implement the unused-import rules described in
      Note [Choosing the best import declaration] in RdrName
    
    This led to Trac #13064 and #15393
    
    Fixing this bug revealed a bunch of unused imports in libraries;
    the ones in the GHC repo are part of this commit.
    
    The two important changes are
    
    * Fix the bug in bestImport
    
    * Modified the rules by adding (a) in
         Note [Choosing the best import declaration] in RdrName
      Reason: the previosu rules made Trac #5211 go bad again.  And
      the new rule (a) makes sense to me.
    
    In unravalling this I also ended up doing a few other things
    
    * Refactor RnNames.ImportDeclUsage to use a [GlobalRdrElt] for the
      things that are used, rather than [AvailInfo]. This is simpler
      and more direct.
    
    * Rename greParentName to greParent_maybe, to follow GHC
      naming conventions
    
    * Delete dead code RdrName.greUsedRdrName
    
    * Slightly change the spec of the unused function
      HsImpExpr.ieLWrappedName, and use it in RnNames.findImportUsage
    2dcebe69