summaryrefslogtreecommitdiff
path: root/compiler/GHC/Rename
diff options
context:
space:
mode:
authorJeff Happily <goodboy96@live.com.my>2020-05-09 13:54:46 +0800
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-05-13 20:08:15 -0400
commit404581eaa3bf8d3f100da7610a6a38158bea17c4 (patch)
treedc5564e70a77e341c6e9d6f664f351ccde4515ca /compiler/GHC/Rename
parenta951e1bab3dfd3e9de31b0d8bf5699a9216b181d (diff)
downloadhaskell-404581eaa3bf8d3f100da7610a6a38158bea17c4.tar.gz
Handle single unused import
Diffstat (limited to 'compiler/GHC/Rename')
-rw-r--r--compiler/GHC/Rename/Names.hs9
1 files changed, 8 insertions, 1 deletions
diff --git a/compiler/GHC/Rename/Names.hs b/compiler/GHC/Rename/Names.hs
index cd39ed701d..db74847707 100644
--- a/compiler/GHC/Rename/Names.hs
+++ b/compiler/GHC/Rename/Names.hs
@@ -1498,9 +1498,16 @@ warnUnusedImport flag fld_env (L loc decl, used, unused)
| null unused
= return ()
+ -- Only one import is unused, with `SrcSpan` covering only the unused item instead of
+ -- the whole import statement
+ | Just (_, L _ imports) <- ideclHiding decl
+ , length unused == 1
+ , Just (L loc _) <- find (\(L _ ie) -> ((ieName ie) :: Name) `elem` unused) imports
+ = addWarnAt (Reason flag) loc msg2
+
-- Some imports are unused
| otherwise
- = addWarnAt (Reason flag) loc msg2
+ = addWarnAt (Reason flag) loc msg2
where
msg1 = vcat [ pp_herald <+> quotes pp_mod <+> is_redundant