Proposal to split -Wunused-imports, dropping the "duplicate import" part of it

Hey all!

I’ve made a proposal to split -Wunused-imports into two warnings:

  • -Wunused-imports - warn when an import is “actually unused”
  • -Wduplicate-imports - warn when a definition is imported more than once

Crucially, only the first one will be in -Wall.

I believe this will greatly benefit maintaining packages against multiple GHC versions, but I would rather not mess something up, so I would love to hear more opinions in the proposal itself - Split -Wunused-imports by googleson78 · Pull Request #586 · ghc-proposals/ghc-proposals · GitHub


I think at some point, the responsibility can be shifted to static analytics such as hlint. The duplicated imports seem definitely a straightforward one hlint can catch.

1 Like

hlint in particular (by design iirc) only does parsing, so it

  • can’t know if two fs are the same f
  • cannot see what an import without an import list brings into scope

I think you need to do a full build at least once for this particular warning, so at that point it’s more convenient to just put it in ghc itself. I agree that this is rather unsatisfying, but it would be a much more long term project to change this