summaryrefslogtreecommitdiff
path: root/lib/LintWriter.hs
diff options
context:
space:
mode:
authorstuebinm2021-12-25 02:56:38 +0100
committerstuebinm2021-12-25 02:56:38 +0100
commit887540e3bb4c2cfc63a142a573cc8161c5bc00d8 (patch)
tree90a0e452f93c1c3c12cc6a4c927523ffdf433651 /lib/LintWriter.hs
parent73feaafc47ef54e87dbf4f29b8828697ce1ffb6e (diff)
don't print doubled lints twice
Diffstat (limited to '')
-rw-r--r--lib/LintWriter.hs7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/LintWriter.hs b/lib/LintWriter.hs
index eb7d138..2b891c3 100644
--- a/lib/LintWriter.hs
+++ b/lib/LintWriter.hs
@@ -52,8 +52,9 @@ import Control.Monad.Writer.Lazy (lift)
import Data.Bifunctor (Bifunctor (second))
import Data.Map (Map, fromListWith)
import Data.Maybe (mapMaybe)
+import qualified Data.Set as S
import LintConfig (LintConfig')
-import TiledAbstract (HasName)
+import TiledAbstract (HasName (getName))
import Types (Dep, Hint, Level (..), Lint (..),
hint, lintsToHints)
@@ -106,9 +107,9 @@ zoom embed extract operation = do
-- | "invert" a linter's result, grouping lints by their messages
-invertLintResult :: HasName ctxt => LintResult ctxt -> Map Hint [ctxt]
+invertLintResult :: HasName ctxt => LintResult ctxt -> Map Hint [Text]
invertLintResult (LinterState (lints, ctxt)) =
- fromListWith (<>) $ (, [ctxt]) <$> lintsToHints lints
+ fmap (S.toList . S.fromList . fmap getName) . fromListWith (<>) $ (, [ctxt]) <$> lintsToHints lints
resultToDeps :: LintResult a -> [Dep]
resultToDeps (LinterState (lints,_)) = mapMaybe lintToDep lints