[erlang-bugs] Dialyzer can yield false positives and false negatives after checking PLT

Stavros Aronis aronisstav@REDACTED
Mon Mar 23 17:25:54 CET 2015


Hi James,

it seems that the fix for this is quite trivial and requires modified
modules to also be purged from an old PLT. The real issue is to create a
test for this in Dialyzer's test suites. I have cc'd Hans Bolinder
(Dialyzer's expert from the OTP team) and will probably take this offline.

https://github.com/aronisstav/otp/commit/7df1d8fbe66c12539e3d36c0bb74b61e846815a3

Thanks for the report!

Stavros

On Fri, Mar 13, 2015 at 12:56 AM, James Fish <james@REDACTED> wrote:

> Hi,
>
> If a function is removed from a module and the module has previously been
> added to a PLT, the function will not be removed from PLT when the PLT is
> checked. This results in dialyzer failing to produce a callgraph warning
> when doing success typings analysis if the remove function is still called
> in another module
>
> As the function is not removed from the PLT a prior warning, such as a
> contract types warning, might be emitted when the removed function nolonger
> exists.
>
> I have attached an archive with a minimal example, which prints a contract
> types warning instead of a callgraph warning. This example has been tested
> on OTP R15B03 and 17.4.
>
> Regards,
>
> James
>
> _______________________________________________
> erlang-bugs mailing list
> erlang-bugs@REDACTED
> http://erlang.org/mailman/listinfo/erlang-bugs
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20150323/76aa8db5/attachment.htm>


More information about the erlang-bugs mailing list