Skip to content

Commit f508e18

Browse files
authored
alterF: Skip deleting the key when it's already absent (#288)
Fixes #287.
1 parent 6f1a92f commit f508e18

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

Data/HashMap/Internal.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1282,7 +1282,7 @@ alterF f = \ !k !m ->
12821282
mv = lookup' h k m
12831283
in (<$> f mv) $ \fres ->
12841284
case fres of
1285-
Nothing -> delete' h k m
1285+
Nothing -> maybe m (const (delete' h k m)) mv
12861286
Just v' -> insert' h k v' m
12871287

12881288
-- We unconditionally rewrite alterF in RULES, but we expose an

Data/HashMap/Internal/Strict.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ alterF f = \ !k !m ->
314314
mv = lookup' h k m
315315
in (<$> f mv) $ \fres ->
316316
case fres of
317-
Nothing -> delete' h k m
317+
Nothing -> maybe m (const (delete' h k m)) mv
318318
Just !v' -> insert' h k v' m
319319

320320
-- We rewrite this function unconditionally in RULES, but we expose

0 commit comments

Comments
 (0)