diff options
author | stuebinm | 2021-09-20 01:26:27 +0200 |
---|---|---|
committer | stuebinm | 2021-09-20 01:26:27 +0200 |
commit | 968038c403e71b98a8f55a4d79e64beca8349ab3 (patch) | |
tree | 4a53190972b3f5a7c12a9a463856d7d4600fe75f /lib/LintWriter.hs | |
parent | 33d2b0c5da01c48c8106876665e646e1d2f560e9 (diff) |
lint general map properties
Diffstat (limited to '')
-rw-r--r-- | lib/LintWriter.hs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/LintWriter.hs b/lib/LintWriter.hs index 055e2d4..02815e3 100644 --- a/lib/LintWriter.hs +++ b/lib/LintWriter.hs @@ -9,7 +9,8 @@ module LintWriter where import Control.Monad.Trans.Maybe () import Control.Monad.Writer (MonadTrans (lift), - MonadWriter (tell), WriterT) + MonadWriter (tell), WriterT, + runWriterT) import Data.Aeson (ToJSON (toJSON)) import Data.Text (Text) @@ -45,6 +46,16 @@ lintsToDeps (LintResult a) = case a of Left _ -> [] Right (_, lints) -> mapMaybe lintToDep lints +-- | convert a lint result into a flat list of lints +-- (throwing away information on if a single error was fatal) +resultToLints :: LintResult a -> [Lint] +resultToLints (LintResult res) = case res of + Left l -> [l] + Right (_, lints) -> lints + +-- | Confusingly, this returns lints, not a … +runLintWriter :: LintWriter a -> [Lint] +runLintWriter = resultToLints . LintResult . runWriterT -- | write a hint into the LintWriter monad lint :: Level -> Text -> LintWriter () |