1
1
mirror of https://github.com/github/semantic.git synced 2024-12-11 08:45:48 +03:00

Uncurry go.

This commit is contained in:
Rob Rix 2019-10-16 18:14:27 -04:00
parent 2523d60b2c
commit ce0866dc1b
No known key found for this signature in database
GPG Key ID: F188A01508EA1CF7

View File

@ -90,13 +90,12 @@ newtype DedupeKey = DedupeKey (T.Text, T.Text) deriving (Eq, Ord)
-- identifiers) are in the list.
-- Action: Combine them into a single Replaced entry.
dedupe :: [(Entry, Declaration)] -> [(Entry, Declaration)]
dedupe = map snd . sortOn fst . Map.elems . snd . foldl' (uncurry . go) (0, Map.empty)
dedupe = map snd . sortOn fst . Map.elems . snd . foldl' go (0, Map.empty)
where
go :: (Int, Map.Map DedupeKey (Int, (Entry, Declaration)))
-> Entry
-> Declaration
-> (Entry, Declaration)
-> (Int, Map.Map DedupeKey (Int, (Entry, Declaration)))
go (index, m) entry decl
go (index, m) (entry, decl)
| Just (_, (_, similar)) <- Map.lookup (dedupeKey decl) m
= (succ index,) $ if similar == decl then
m