阴谋文件和副本中的不同警告设置

时间:2018-09-05 06:17:07

标签: haskell cabal-install

我通常希望确保在Haskell中使用显式导入列表或合格的导入,但是经常在进行更改时,我只是从模块中导入所有内容,然后在提交前需要提醒对其进行修复。因此,我将ghc-options: -Wmissing-import-lists添加到了项目的cabal文件中,效果很好。

但是,在开发过程中,我也经常使用repl,并且通常在repl会话中需要的警告少于编译实际代码时的警告。因此,我对in this question提出了相同的建议。使用(本地项目).ghci文件来关闭我在团体文件中设置的许多警告,包括-Wno-missing-import-lists

麻烦在于cabal repl会这样做:

Preprocessing library for example-0.1.0.0..
GHCi, version 8.4.3: http://www.haskell.org/ghc/  :? for help

<interactive>:1:1: warning: [-Wmissing-import-lists]
    The module ‘Prelude’ does not have an explicit import list
Loaded GHCi configuration from /home/ben/src/example/.ghci
Loaded GHCi configuration from /home/ben/.ghci
[1 of 1] Compiling Example          ( src/Example.hs, interpreted )
*Example
λ 

它在自己-Wmissing-import-lists的隐式导入期间应用Prelude,甚至尝试读取禁用警告的.ghci文件。 1

我认为在读取任何.ghci文件之前,GHCi应用的任何其他选项也会出现问题(还有其他吗?)。那么,是否还有其他方法可以在Cabal文件中指定某些GHC选项仅用于构建,而不用于重复?


1 这特别令人讨厌,因为使用该警告构建Example.hs实际上并不抱怨隐式Prelude导入中缺少导入,如果我显式导入{{1 }}和一个导入列表,那么即使这些导入实际上不在提示的范围内,我仍然会从其自己的导入中收到Prelude的警告!

0 个答案:

没有答案