繁体   English   中英

我可以在特定文件中有选择地删除.cabal文件的`ghc-options`吗?

[英]Can I selectively remove .cabal file's `ghc-options` in particular files?

我在用

ghc-options: -Wall

在我的.cabal文件中,并且喜欢它....

....除非我讨厌它。 例如,我有一个看起来像这样的Constants.hs文件

numDogs=1000
numCats=2000
......
....etc for like 100 lines

....当然-Wall抱怨我不提供所有类型的签名,而是将文件更改为此

numDogs::Int
numDogs=1000

numCats::Int
numCats=2000

....etc

真的会很愚蠢。

那么,有没有办法在每个文件的基础上关闭ghc-opts。

(我知道我可以从cabal中省略ghc-options,并将它放在我想要的每个文件中使用{-# OPTIONS_GHC -Wall #-} ,但是当我这样做时,我经常忘记文件,所以我宁愿不这样做)

好吧, {-# OPTIONS_GHC flag #-}可以带任何 GHC标志 ,所以你可以简单地使用-w来禁用所有警告。 但由于你最关心的是常量缺失的签名,你可能需要-fno-warn-missing-signatures-fno-warn-type-defaults

{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
{-# OPTIONS_GHC -fno-warn-type-defaults #-}

话虽这么说,如果你使用一堆具有相同类型的常量,你可以简单地写:

numDogs, numCats, numParrots, numFishes, numRats :: Int

这也会删除警告,并确保常量具有适当的类型。

-Wall隐含的大多数标志都有一个反转-f-no-*选项,如果您在本地应用,则会覆盖全局设置。 因此,例如,在您希望不具有顶层签名的模块中,您可以添加:

{-# OPTIONS_GHC  -fno-warn-missing-signatures #-}

这仍将为您的模块赋予-Wall(不完整的模式和诸如此类)所暗示的所有其他检查,但只是不丢失签名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM