[英]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.