Closed thomas9911 closed 4 years ago
Thanks for finding and reporting this! A PR is welcome.
I'm in favor of the merged change, but just curious how the "upgrade path" here works. If I have an old hash file, does it update cleanly with the new version?
Next time you run dialyzer it will check the plt and update the hash
Closed by #396.
Environment
Elixir 1.9.1 OTP 20 Dialyxir 1.0.0
Current behavior
The current hash of the PLT is calculated based on a
Mix.Dep.Lock.read()
map, which is turned into a binary with :erlang.term_to_binary(). Only the ordering is sometimes different because of the way maps are implemented in Elixir. This means the hash is different even if the mix.lock file and its contents are the same.Expected behavior
The hash should stay the same if the dependencies are not changed.
Possible solution
instead of a map of the contents of the mix.lock file just use the mix.lock file: