Age | Commit message (Collapse) | Author |
|
|
|
As of commit 12b379 many of the reasons displayed after
"Analysis failed with error:"
erroneously include a call stack. The bug is now corrected.
The bug was pointed out in
http://erlang.org/pipermail/erlang-questions/2017-October/093838.html.
|
|
Instead of two records, #plt{} with dict:s and #mini_plt{} with ETS
tables, one record is used for representing PLT:s in RAM.
The #mini_plt{} is the one now used throughout analyses, but it is
called #plt{}.
When writing the PLT to file, another record is used, #file_plt{} (as
before). When creating #file_plt{}, the #plt{} is deleted (it cannot
be used for further analyses).
|
|
The same checks are also performed by the Dialyzer.
|
|
|
|
Use explicit file names of PLTs so that daily builds&tests running
simultaneously under the same user do not interfere with each other
("$HOME/.dialyzer_plt" is the default PLT name).
|
|
If a dialyzer module attribute references an undefined (local)
function an error tuple is thrown but no caught. This leads to a
'nocatch' error and not the intended "clean" error.
|
|
[James Fish:]
Dialyzer always asserts that files and directories passed in its
options exist. Therefore it is not possible to remove a beam/module
from a PLT when the beam file no longer exists. Dialyzer should not to
check files exist on disk when removing from the PLT.
|
|
If a behaviour module contains an non-exported function with the same name as
one of the behaviour's callbacks, the callback info was inadvertently deleted
from the PLT as the dialyzer_plt:delete_list/2 function was cleaning up the
callback table. This bug was reported by Brujo Benavides.
Fixes ERL-72 bug report.
|
|
* Mention the option 'check_plt' among gui() options.
* No longer check a PLT twice when the analysis type is 'plt_check'.
* No longer raise a case_clause error when checking a PLT finds warnings.
Thanks to James Fish.
|
|
|
|
Thanks to James Fish for the bug report, and to Stavros Aronis for
fixing the bug.
|
|
|