Re: Dialyzer can yield false positives and false negatives after checking PLT
Stavros Aronis <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.bugs |
|---|---|
| Message-ID | <CABOX0Z_Ubx8im=o0RcjTBSAeL3EDO3p8sLrEURC5XnPmD3t7QA@mail.gmail.com> |
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 <[email protected]> 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 > [email protected] > http://erlang.org/mailman/listinfo/erlang-bugs > > _______________________________________________ erlang-bugs mailing list [email protected] http://erlang.org/mailman/listinfo/erlang-bugs