• David Eichmann's avatar
    Fix unused-import warnings · 6353efc7
    David Eichmann authored and Ben Gamari's avatar Ben Gamari committed
    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
    Bumps a few submodules.
    Reviewers: hvr, goldfire, bgamari, simonmar, jrtc27
    Subscribers: rwbarton, carter
    Differential Revision: https://phabricator.haskell.org/D5312
ByteCodeLink.hs 6.34 KB