在GHC中禁用"模块不导出标识符"警告

ben*_*ofs 8 haskell compiler-warnings ghc

编译以下代码:

import Prelude hiding (nonExistent)
main = return ()
Run Code Online (Sandbox Code Playgroud)

随着ghc -Wall给出:

test.hs:1:1: Warning:
    Module `Prelude' does not export `nonExistent'
Run Code Online (Sandbox Code Playgroud)

是否有-fno-XXX禁用此特定警告的标志?

ben*_*ofs 8

我自己刚刚找到了国旗-fno-warn-dodgy-imports:

除了文档中说明的内容:

-fwarn-dodgy-imports:当使用所有构造函数导入数据类型T时发出警告,即T(..),但是已经抽象地导出,即T.

它似乎也启用/禁用我在我的问题中给出的特定警告.

  • [这个标志的行为发生了变化](https://ghc.haskell.org/trac/ghc/ticket/7167)但他们忘了同时更新文档,因此某些版本的GHC有新的行为但不是它的文档.在此更改之前,您要使用的案例实际上是*错误*并且无法禁用. (5认同)