I guess that depends on your definition of “bug”.
To me, a bug is when you get incorrect results, or there is an inconsistency between the documentation and the results (which could be a bug in the code, the documentation, or both). An inconsistency between behavior of different types/methods where a reasonable programmer might expect them to be consistent might indicate a bug, or some possibly undocumented design decision (in which case, it’s a documentation issue).
That’s not the case here (a good example of what I felt really was a bug with Dict
s was #15077, which was fixed by https://github.com/JuliaLang/julia/pull/15176).
Having these collide could potentially cause a performance issue, but the results would still be correct.
Note, that this problem / performance issue happens for all subtypes of Associative
, unless they have implemented their own hash
method (and haven’t copied the same flaw).
I already have a “fix” ready for this, in https://github.com/ScottPJones/julia/tree/spj/fixasshash if somebody could make it into a PR. It also has tests added.