Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Haskell: how to tell hlint not to: `Warning: Use string literal`

Tags:

I have a unit test file:

module X04PatMatTest where  import AssertError import Test.HUnit import X04PatMat  ... 

and hlint complains:

X04PatMatTest.hs:15:69: Warning: Use string literal  Found:   ['a', 'b', 'd'] Why not:   "abd" 

for various reasons, I really want to put ['a', 'b', 'd'] in the test code.

I have tried various permuatations of

{-# ANN X04PatMatTest "HLint: ignore Warning: Use string literal" #-} 

like putting the pragma as the first line of the file, after the module declaration, with the name module instead of X04..., changing the Warning to warn ...

What is the magic?

like image 728
haroldcarr Avatar asked Oct 08 '13 01:10

haroldcarr


1 Answers

You need to write the pragma in another way. After some trial and error I came up with the following:

module Test where  import Data.Char(toUpper)  {-# ANN module "HLint: ignore Use string literal" #-} main :: IO () main = putStrLn ['a','b','c'] 

note that you have to write "module" and not the name of the module

like image 141
MoFu Avatar answered Oct 18 '22 08:10

MoFu