diff options
author | David Eichmann <EichmannD@gmail.com> | 2018-11-22 14:48:05 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-11-22 16:10:06 -0500 |
commit | 6353efc7694ba8ec86c091918e02595662169ae2 (patch) | |
tree | 13a255193a5a9685a97e99c020578144df21af39 /hadrian | |
parent | 8d008b71db53f7a59673f894f329b8d71f84c8ee (diff) | |
download | haskell-6353efc7694ba8ec86c091918e02595662169ae2.tar.gz |
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 #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
Diffstat (limited to 'hadrian')
-rw-r--r-- | hadrian/hadrian.cabal | 2 | ||||
-rw-r--r-- | hadrian/src/Hadrian/Haskell/Cabal/Parse.hs | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/hadrian/hadrian.cabal b/hadrian/hadrian.cabal index fec927a834..422217b56d 100644 --- a/hadrian/hadrian.cabal +++ b/hadrian/hadrian.cabal @@ -114,7 +114,7 @@ executable hadrian other-extensions: MultiParamTypeClasses , TypeFamilies build-depends: base >= 4.8 && < 5 - , Cabal >= 2.4 && < 2.5 + , Cabal >= 2.5 && < 2.6 , containers == 0.5.* , directory >= 1.2 && < 1.4 , extra >= 1.4.7 diff --git a/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs b/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs index e0edb78731..bb2f0be3da 100644 --- a/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs +++ b/hadrian/src/Hadrian/Haskell/Cabal/Parse.hs @@ -63,7 +63,7 @@ parsePackageData pkg = do libDeps = collectDeps (C.condLibrary gpd) exeDeps = map (collectDeps . Just . snd) (C.condExecutables gpd) allDeps = concat (libDeps : exeDeps) - sorted = sort [ C.unPackageName p | C.Dependency p _ <- allDeps ] + sorted = sort [ C.unPackageName p | C.Dependency p _ _ <- allDeps ] deps = nubOrd sorted \\ [name] depPkgs = catMaybes $ map findPackageByName deps return $ PackageData name version (C.synopsis pd) (C.description pd) depPkgs gpd |