aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dialyzer/src/dialyzer_dep.erl
AgeCommit message (Collapse)Author
2016-11-23Correct copyright and license on dialyzer filesRichard Carlsson
2016-05-13Use the newly defined types in a record declarationKostis Sagonas
2016-05-13Strengthen the spec of analyze/1Kostis Sagonas
2016-05-13Fix dependency calculation when encountering an erroneous 'apply'Kostis Sagonas
Dialyzer's dependency calculation was throwing an error when encountering an 'apply' node with something that was not a variable (e.g., a literal). The rest of the code did not know what to do with this error, which resulted in dialyzer crashing. Fix this by ingoring the detected error in the dependency calculation phase; later dialyzer passes know how to properly handle and report this kind of errors anyway. This fixes [Erlang-JIRA] (ERL-138).
2016-03-15update copyright-yearHenrik Nord
2015-06-18Change license text to APLv2Bruce Yinhe
2014-03-28Dialyzer now plays nicely with funs that come as "external" argumentsStavros Aronis
Two steps are needed to make this work: 1) Avoid generating the additional "apply_constraint" in dialyzer_typesig by reporting every function argument as a potential external function (patch on dialyzer_dep). This will produce correct success typings for all functions in the test case, but dataflow would miss the key warnings that help identify the bugs. 2) Patch dialyzer_dataflow so that it uses the "handle just external" path as a fallback whenever there are any external calls. As a result, if we have info about some paths, then: a) use the old "handle known apply" code to mark these functions as used and b) ignore the generalized result and use the one found by typesig for the return value of the apply itself.
2014-03-24Use the ordsets:ordset(T) type instead of defining a local oneKostis Sagonas
2014-02-24Merge branch 'hb/dialyzer/fix_on_load/OTP-11743'Hans Bolinder
* hb/dialyzer/fix_on_load/OTP-11743: FIx handling of 'on_load' attribute
2014-02-24FIx handling of 'on_load' attributeHans Bolinder
[pull request from Kostis Sagonas] The handling of functions appearing in an 'on_load' attribute was wrong. Instead of considering the functions specified in these attributes as escaping from the module and performing a full analysis starting from them, the code just bypassed this analysis and only suppressed unused warning messages for these functions. This worked for most of the cases but resulted in functions (directly or indirectly) called by 'on_load' functions being reported as not called by the module. Such a case existed in the code of the 'crypto' application. To solve these issues the initialization code for functions escaping from the module was changed and the test for the on_load functionality was appropriately extended.
2014-02-23Deprecate pre-defined built-in typesHans Bolinder
The types array(), dict(), digraph(), gb_set(), gb_tree(), queue(), set(), and tid() have been deprecated. They will be removed in OTP 18.0. Instead the types array:array(), dict:dict(), digraph:graph(), gb_set:set(), gb_tree:tree(), queue:queue(), sets:set(), and ets:tid() can be used. (Note: it has always been necessary to use ets:tid().) It is allowed in OTP 17.0 to locally re-define the types array(), dict(), and so on. New types array:array/1, dict:dict/2, gb_sets:set/1, gb_trees:tree/2, queue:queue/1, and sets:set/1 have been added.
2014-01-29dialyzer: Reflect map_pair core changes in dialyzerBjörn-Egil Dahlberg
2014-01-28dialyzer,hipe,stdlib: Add Maps understanding to DialyzerBjörn-Egil Dahlberg
2014-01-14Fix an erroneous specKostis Sagonas
The branch that patched this file to handle the new "named funs" added an extra argument to the main function of the module but forgot to update its spec.
2013-12-12Support non top level letrecs in dialyzerJosé Valim
Dialyzer so far only supported letrecs at the top-level and comprehension-like letrecs (i.e. that were directly applied) in their body. This commit address this issue by storing in the callgraph bound letrec labels pointing to their functions. This information is then used by the dataflow to properly lookup recursive definitions.
2010-02-17Merge branch 'ks/hipe' into ccase/r13b04_devErlang/OTP
* ks/hipe: dialyzer: Fix system_limit exception in race analysis syntax_tools: Add types and specs for most exported functions syntax_tools: Support the --enable-native-libs configure option syntax_tools: Remove $Id$ annotations dialyzer: New version for the R13B04 release hipe: Miscellaneous additions typer: New version for the R13B04 release Fix a HiPE compiler bug evaluating an expression that throws system_limit OTP-8460 ks/hipe
2010-02-14dialyzer: New version for the R13B04 releaseKostis Sagonas
2009-11-20The R13B03 release.OTP_R13B03Erlang/OTP