This bug shows an interesting case of "specs as documentation" and the difference between how Dialyzer and Gradualizer treat them:
Dialyzer does not report any errors, since indeed, the code works - MIM big tests confirm that, too.
Gradualizer yells that there's an error, since indeed, the spec lies about the actually accepted parameters.
IMO, usability wise Gradualizer is more convenient to quickly catch programmer typos/mistakes since it takes way less time to run it. Moreover, it reinforces the "specs as documentation" approach, as it actually points out mistakes in the specs.
This bug shows an interesting case of "specs as documentation" and the difference between how Dialyzer and Gradualizer treat them:
IMO, usability wise Gradualizer is more convenient to quickly catch programmer typos/mistakes since it takes way less time to run it. Moreover, it reinforces the "specs as documentation" approach, as it actually points out mistakes in the specs.