Как [временно] подавить «определенные, но не используемые» предупреждения? - PullRequest
25 голосов
/ 22 ноября 2011

Когда я создаю прототипы программ на 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
 #-}

К сожалению, это не работает, и хотя я также пытался: установить -fno-warn-unused-binds, это все еще не работает.

Большое спасибо!

Ответы [ 4 ]

31 голосов
/ 22 ноября 2011

Другая возможность, в зависимости от вашей ситуации: я полагаю, что вы можете использовать префикс идентификаторов с подчеркиванием для подавления этого предупреждения. Итак:

_x = 42

не выдаст предупреждение, если _x не используется.

16 голосов
/ 14 сентября 2013

GHC имеет два флага предупреждений, которые могут запускать Warning: Defined but not used.

Вам нужна комбинация флагов командной строки -fno-warn-unused-binds и -fno-warn-unused-matches.

8 голосов
/ 22 ноября 2011

Я обычно использую -w для подавления всех предупреждений, когда хочу временно избавиться от некоторых предупреждений.

6 голосов
/ 22 ноября 2011

Я использую обходной путь для этого:

Я компилирую без предупреждений, но затем я использую инструмент HLint для отображения предупреждений для меня.У HLint есть средства для отдельного включения предупреждений.

...