Skip to content

Commit e2c8d3a

Browse files
committed
use a set for the preserved keys
1 parent 0a42e47 commit e2c8d3a

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
@@ -786,17 +786,18 @@ garbageCollectKeys label maxAge checkParents agedKeys = do
786786
where
787787
removeDirtyKey st@(vmap,(!counter, keys)) (k, age)
788788
| age > maxAge
789-
, fromKeyType k `notElem` preservedKeys checkParents
789+
, Just kt <- fromKeyType k
790+
, not(kt `HSet.member` preservedKeys checkParents)
790791
, (True, vmap') <- HMap.alterF (\prev -> (isJust prev, Nothing)) k vmap
791792
= (vmap', (counter+1, k:keys))
792793
| otherwise = st
793794

794795
countRelevantKeys :: CheckParents -> [Key] -> Int
795796
countRelevantKeys checkParents =
796-
Prelude.length . filter ((`notElem` preservedKeys checkParents) . fromKeyType)
797+
Prelude.length . filter (maybe False (not . (`HSet.member` preservedKeys checkParents)) . fromKeyType)
797798

798-
preservedKeys :: CheckParents -> [Maybe TypeRep]
799-
preservedKeys checkParents = map Just $
799+
preservedKeys :: CheckParents -> HashSet TypeRep
800+
preservedKeys checkParents = HSet.fromList $
800801
-- always preserved
801802
[ typeOf GetFileExists
802803
, typeOf GetModificationTime

0 commit comments

Comments
 (0)