haskell 如何[暂时]抑制“已定义但未使用”的警告?

6jygbczu  于 11个月前  发布在  其他
关注(0)|答案(5)|浏览(155)

当我对Haskell程序进行原型设计时,我总是收到数百个这样的警告(不是开玩笑):

/Users/bob/SourceCode/course/is/expriment/LiftedSpine2.hs:70:15:
    Warning: Defined but not used: `ta'

/Users/bob/SourceCode/course/is/expriment/LiftedSpine2.hs:72:15:
    Warning: Defined but not used: `ta'

/Users/bob/SourceCode/course/is/expriment/LiftedSpine2.hs:77:26:
    Warning: Defined but not used: `v'

字符串
有办法暂时删除这些警告吗?我试着把它放在我的.hs文件中:

{-# OPTIONS_GHC -fno-warn-unused-binds -fno-warn-name-shadowing 
    -fwarn-monomorphism-restriction -fwarn-hi-shadowing
 #-}


不幸的是,它不起作用,虽然我也尝试过:set -fno-warn-unused-binds,但它仍然不起作用。
多谢了!

laik7k3q

laik7k3q1#

使用GHC 9.8.1,验证以下语法是否有效。

{-# OPTIONS -Wno-missing-export-lists #-}

字符串
请注意,它是OPTIONS,而不是OPTIONS_GHC,以及-W,而不是-f

lmvvr0a8

lmvvr0a82#

另一种可能性,取决于你的情况:我相信你可以在标识符前面加上下划线来消除这个警告。所以:

_x = 42

字符串
如果不使用_x,则不会生成警告。

5hcedyr0

5hcedyr03#

GHC有两个可以触发Warning: Defined but not used的警告标志。
您需要命令行标志-fno-warn-unused-binds-fno-warn-unused-matches的某种组合。

ct2axkht

ct2axkht4#

当我想暂时删除一些警告时,我通常使用-w来隐藏所有警告。

fcwjkofz

fcwjkofz5#

我使用了一个解决方法:
我编译时没有警告,但是我使用HLint工具来显示警告。HLint有单独打开警告的功能。

相关问题