Fix unused-import warnings

Authored by DavidEichmann on Thu, Nov 22, 1:48 PM.

Description

Fix unused-import warnings

This patch fixes a fairly long-standing bug (dating back to 2015) in
RdrName.bestImport, namely

commit 9376249b6b78610db055a10d05f6592d6bbbea2f
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 Trac #13064 and Trac #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 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

Details

Committed
bgamariThu, Nov 22, 3:10 PM
Differential Revision
D5312: Fix unused-import warnings
Parents
rGHC8d008b71db53: Don't pass -no-pie when -pgmc is supplied
Branches
Unknown
Tags
Unknown