What should we expect? Or should we completely forbids using vectors(arrays) as key? Then why does hash for array relies on value rather than objectid?
Arrays compare equality by their contents, thus they hash by their (current) contents. If you change the contents of an array that’s being used as a dictionary key, you’ll no longer be able to find it in the dictionary. This is the expected behavior, and I think we have it documented… if not let’s add it as a warning to the documentation.
However when using Dict in callback functions, and of course we can’t require the caller to ensure it doesn’t reuse any arrays, disaster comes about. Is this still by design?