How to [temporarily] suppress “defined but not used” warnings?

旧城冷巷雨未停 提交于 2019-12-29 07:22:39

问题


When I prototype Haskell programs, I always get hundreds of warnings like this (not joking):

/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'

Is there anyway to remove these warnings temporarily? I tried putting this in my .hs file:

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

Unfortunately, it does not work, and although I also tried to :set -fno-warn-unused-binds, it still does not work.

Many thanks!


回答1:


Another possibility, depending on your situation: I believe you can prefix identifiers with an underscore to suppress this warning. So:

_x = 42

will not generate the warning if _x is not used.




回答2:


GHC has two warnings flags which can trigger Warning: Defined but not used.

You need some combination of the command line flags -fno-warn-unused-binds and -fno-warn-unused-matches.




回答3:


I usually use -w to suppress all warnings when I want get rid of some warning temporarily.




回答4:


I use a workaround for this:

I compile without warnings, but then I use HLint tool to display warnings for me. HLint has facilities to turn warnings separately.



来源:https://stackoverflow.com/questions/8221201/how-to-temporarily-suppress-defined-but-not-used-warnings

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!