lint-hints.hs 670 Bytes
Newer Older
Iustin Pop's avatar
Iustin Pop committed
1 2 3 4 5 6 7 8 9
{- Custom hint lints for Ganeti.

Since passing --hint to hlint will override, not extend the built-in hints, we need to import the existing hints so that we get full coverage.

-}

import "hint" HLint.Default
import "hint" HLint.Dollar

10 11 12 13 14 15
-- The following two hints warn to simplify e.g. "map (\v -> (v,
-- True)) lst" to "zip lst (repeat True)", which is more abstract
warn = map (\v -> (v, x)) y ==> zip y (repeat x)
  where _ = notIn v x
warn = map (\v -> (x, v)) ==> zip (repeat x)
  where _ = notIn v x
16 17 18 19 20

-- The following warn on use of length instead of null
warn = length x > 0 ==> not (null x)
warn = length x /= 0 ==> not (null x)
warn = length x == 0 ==> null x