除非删除中间文件,否则将禁止显示 GHC 警告



我正在编译我的程序:ghc -Wall foo.hs我收到了一些有用的警告:

foo.hs:14:1: Warning:
    Top-level binding with no type signature: main :: IO ()

现在,如果我立即重新运行ghc -Wall foo.hs,则不会收到任何警告。如果我删除中间文件foo.ofoo.hi,然后运行ghc -Wall foo.hs,警告会再次出现。

这是有意的行为吗?我可以做到始终显示警告而不必删除中间文件吗?

如果编译结果(.hi.o(已经存在,那么GHC将不会重新编译.hs。 GHC 仅在编译(或类型检查(.hs时发出警告。

也许您可以使用ghc -fforce-recomp foo.hs来强制重新编译。 (如果您只想进行类型检查,那么使用ghc -fforce-recomp -fno-code foo.hs会更快,但有一些警告-fno-code无法捕获。

相关内容

  • 没有找到相关文章

最新更新