我有一個單元測試文件:哈斯克爾:如何告訴hlint不是:`警告:字符串literal`
module X04PatMatTest where
import AssertError
import Test.HUnit
import X04PatMat
...
和hlint抱怨:
X04PatMatTest.hs:15:69: Warning: Use string literal
Found:
['a', 'b', 'd']
Why not:
"abd"
由於種種原因,我真的想要在測試代碼中輸入['a', 'b', 'd']
。
我已經試過的
{-# ANN X04PatMatTest "HLint: ignore Warning: Use string literal" #-}
各種permuatations喜歡把編譯作爲文件的第一行,模塊聲明之後,名爲module
而不是X04...
,改變Warning
到warn
......
什麼是魔術?
這工作 - 謝謝。 HLint的文件不清楚。對於函數上的編譯指示,它表示:'{ - #ANN myFunction「HLint:忽略」# - }'。對於模塊上的編譯指示,它說:'{ - #ANN module「HLint:忽略Eta reduce」# - }'所以我不清楚是否應該寫'module'或類似'myModule'的東西。 – haroldcarr
@haroldcarr沒有明確說明,沒錯。你可以通過某種方式推導出來,第一個字母是小寫,模塊名稱以大寫字母開頭。附:如果你能接受我的答案,那會很好。 – MoFu
我已將文檔更新爲:\t { - #ANN module「HLint:ignore Eta reduce」# - } - 忽略此模塊中的所有eta減少建議(使用模塊從字面上看,不是模塊的名稱) 。他們在git中,但文檔鏈接仍然會將您帶到過時的darcs。我提出了一個錯誤來解決這個問題。 –