FunctionalCollections.jl
FunctionalCollections.jl copied to clipboard
PersistentHashMap: `get` with default throws KeyError
I've been getting some keyerrors when calling get(m, key, 0) where m::PersistentHashMap.
Based on a cursory look at the FunctionalCollections source code, it looks to me like the issue is arising because when checking whether there is a value for the key so it knows whether to return the default, the method get(::PersistentHashMap, key, default) instead checks whether there is a value for any key with the same hash as key. I don't think I understand the source code fully enough to be sure this is the problem, though.
(I'm referring to the following method, defined at PersistentHashMap.jl:149 on my install:)
function Base.get(m::PersistentHashMap, key, default)
val = get(m.trie, reinterpret(Int, hash(key)), NotFound())
(val === NotFound()) && return default
val[key]
end