summaryrefslogtreecommitdiff
path: root/lib/LintWriter.hs
diff options
context:
space:
mode:
authorstuebinm2021-09-20 01:26:27 +0200
committerstuebinm2021-09-20 01:26:27 +0200
commit968038c403e71b98a8f55a4d79e64beca8349ab3 (patch)
tree4a53190972b3f5a7c12a9a463856d7d4600fe75f /lib/LintWriter.hs
parent33d2b0c5da01c48c8106876665e646e1d2f560e9 (diff)
lint general map properties
Diffstat (limited to 'lib/LintWriter.hs')
-rw-r--r--lib/LintWriter.hs13
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 ()