Skip to content

Commit 3630ab4

Browse files
committed
use a set for the preserved keys
1 parent 2897dd3 commit 3630ab4

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

ghcide/src/Development/IDE/Core/Shake.hs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -784,17 +784,18 @@ garbageCollectKeys label maxAge checkParents agedKeys = do
784784
where
785785
removeDirtyKey st@(vmap,(!counter, keys)) (k, age)
786786
| age > maxAge
787-
, fromKeyType k `notElem` preservedKeys checkParents
787+
, Just kt <- fromKeyType k
788+
, not(kt `HSet.member` preservedKeys checkParents)
788789
, (True, vmap') <- HMap.alterF (\prev -> (isJust prev, Nothing)) k vmap
789790
= (vmap', (counter+1, k:keys))
790791
| otherwise = st
791792

792793
countRelevantKeys :: CheckParents -> [Key] -> Int
793794
countRelevantKeys checkParents =
794-
Prelude.length . filter ((`notElem` preservedKeys checkParents) . fromKeyType)
795+
Prelude.length . filter (maybe False (not . (`HSet.member` preservedKeys checkParents)) . fromKeyType)
795796

796-
preservedKeys :: CheckParents -> [Maybe TypeRep]
797-
preservedKeys checkParents = map Just $
797+
preservedKeys :: CheckParents -> HashSet TypeRep
798+
preservedKeys checkParents = HSet.fromList $
798799
-- always preserved
799800
[ typeOf GetFileExists
800801
, typeOf GetModificationTime

0 commit comments

Comments
 (0)