[英]Unrecognised HLINT pragma in Haskell
我正在尝试禁用 HLint 给我的一些警告。 根据文档,我应该能够在我的文件顶部添加一个编译指示。 所以我尝试了以下方法:
{-# HLINT ignore #-}
module Main where
然而,这在运行stack build
时给了我一个错误:
/Users/nene/somedir/src/Main.hs:1:1: warning: [-Wunrecognised-pragmas]
Unrecognised pragma
|
1 | {-# HLINT ignore #-}
| ^^^
似乎编译指示实际上在我的编辑器中工作(带有“Haskell”扩展名的 VSCode),但在运行stack
时无法识别。
如果你想在没有任何警告的情况下使用编译指示,你可以像这样使用ANN
编译指示:
{-# ANN module "HLint: ignore" #-}
但是,我建议使用常规注释而不是编译指示:
{- HLINT ignore -}
我更喜欢常规注释,因为它们没有像 pragma 这样的奇怪规则。 事实上,文档说明:
对于
ANN
编译指示,将它们放在任何 import 语句之后很重要。 如果您启用了OverloadedStrings
扩展,则需要为注解指定显式类型,例如{-# ANN myFunction ("HLint: ignore":: String) #-}
。ANN
pragma 还可以增加编译时间或导致比其他要求更多的重新编译,因为它们是由TemplateHaskell
评估的。对于
{-# HLINT #-}
pragma,GHC 可能会发出有关无法识别的 pragma 的警告,可以使用-Wno-unrecognised-pragmas
来抑制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.