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

bob*_*ang 27 haskell ghc

当我对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
 #-}
Run Code Online (Sandbox Code Playgroud)

不幸的是,它不起作用,虽然我也尝试:设置-fno-warn-unused-binds,但它仍然不起作用.

非常感谢!

luq*_*qui 32

另一种可能性,取决于您的情况:我相信您可以使用下划线为标识符添加前缀以抑制此警告.所以:

_x = 42
Run Code Online (Sandbox Code Playgroud)

如果_x不使用,将不会生成警告.


小智 16

GHC有两个可以触发的警告标志Warning: Defined but not used.

您需要命令行标志的一些组合-fno-warn-unused-binds-fno-warn-unused-matches.


aug*_*tss 8

当我想暂时删除一些警告时,我通常使用-w来抑制所有警告.

  • 是的,但是当我暂时删除警告时,这是暂时的,所以我很快就会看到这些警告. (2认同)

npo*_*cop 5

我使用了一个解决方法:

我编译没有警告,但后来我使用HLint工具显示警告.HLint具有单独发出警告的功能.