aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dialyzer
AgeCommit message (Collapse)Author
2010-11-30dialyzer: Add support for multiple PLTsMaria Christakis
This new feature is able to take multiple PLTs, merge them during the start of the analysis, and work from there. This works provided that the PLTs do not have a module with the same name appearing in more than one PLT. The PLTs are created in the usual way: dialyzer --build_plt --output_plt PLT_1 FILES_TO_INCLUDE ... dialyzer --build_plt --output_plt PLT_N FILES_TO_INCLUDE and then can be used in either of the following ways: dialyzer FILES_TO_ANALYZE --plts PLT_1 ... PLT_N or: dialyzer --plts PLT_1 ... PLT_N -- FILES_TO_ANALYZE (Note the -- delimiter in the second case)
2010-11-26Fix typo in warningsStavros Aronis
2010-11-22Merge branch 'ks/dialyzer-fixes' into devBjörn Gustavsson
* ks/dialyzer-fixes: dialyzer: Speed up analysis of nested list comprehensions
2010-11-22Merge branch 'ks/erl_types-fixes' into devBjörn Gustavsson
* ks/erl_types-fixes: erl_types: Fix pretty rare crashes and an infinite loop OTP-8942
2010-11-22erl_types: Fix pretty rare crashes and an infinite loopKostis Sagonas
- Fixed pretty rare crash when taking the infimum of two tuple_sets (initial fix by Kostis Sagonas but then a better fix was provided by Stavros Aronis and this is the one adopted). - Fixed pretty rare crash when using parameterized types containing unbound variables (thanks to Nicolas Trangez for reporting it). - Fixed pretty rare infinite loop when refining the types of an SCC whose functions all returned none() (thanks to Stavros Aronis).
2010-11-09dialyzer: Speed up analysis of nested list comprehensionsKostis Sagonas
Nested list comprehensions are translated into strongly connected funs but dialyzer ignored this. This meant that self-recursive analysis was normally executed for each fun and the whole fixpoint took some time to calculate. This patch adds every fun found in constraint generation to the SCC that is under analysis and then solves the SCC as a whole. Possible issues: - The returned dict contains more entries than usual. This triggered a bug in contract checking that is dealt with is this patch as well (dialyzer_contracts.erl). - As it's not easy to tell apart real fun SCCs from simple funs it performance might be hampered in the simple funs case. While doing these changes, also added and strengthened some specs. In addition, incorporated a modified patch by Ahmed Omar that fixes a bug in dialyzer_analysis_callgraph module that kept the files of only one selected directory in dialyzer's GUI.
2010-11-09Fix two typos in Dialyzer documentationTuncer Ayaz
2010-10-26Add missing Dialyzer warning options to docTuncer Ayaz
-Wno_opaque, -Wrace_conditions and -Wbehaviours are only documented in the Dialyzer command line help text. Add them to the documentation.
2010-10-14dialyzer: Fix so warnings will be emitted for all public ETS tablesMaria Christakis
2010-10-06Merge branch 'ks/fix-dialyzer_plt-spec' into devBjörn Gustavsson
* ks/fix-dialyzer_plt-spec: Dialyzer: Fix erroneous type and use the same definition in two places
2010-10-04Dialyzer: Fix erroneous type and use the same definition in two placesKostis Sagonas
2010-09-24Fix two errors in dialyzerKostis Sagonas
Changes which fix some problems reported by dialyzer users: 1. The handling of nested opaque types 2. The handling of remote types in record expressions used as types While at it, updated dialyzer's RELEASE_NOTES to reflect these fixes and did some cleanups to dialyzer_utils.erl so that it gets in sync with dialyzer's main development branch.
2010-09-13Prepare releaseOTP_R14BErlang/OTP
2010-09-10Remove warnings for clashes with new autoimported BIFsPatrik Nyblom
2010-06-11Update release notesBjörn Gustavsson
2010-06-08Various changes to dialyzer-related files for R14.Kostis Sagonas
Bumped version number and wrote RELEASE_NOTES. Included all changes described in release notes. Some spec-related changes to some files in lib/hipe/cerl.
2010-06-07Fix confusing dialyzer warnings for is_record/2 with illegal recordsBjörn Gustavsson
In commit 1858cb81391d2bce29b4b7620574ca60128cebf7, erl_expand_records started to optimize is_record/2 in guards by replacing it with pattern matching (if possible). Unfortunately, dialyzer will no longer see the code before the optimization, so any warnings produced in code such as: case ExprNotProducingRecord#rec{} of X when is_record(X, rec, N) -> ... will refer to the optimized code and not the source code, which is confusing for the user. Introduce the no_is_record_optimization option for turning off the optimization and use it in dialyzer. Reported-by: Kostis Sagonas
2010-06-03Minor fix in a print messageKostis Sagonas
2010-06-03Add handling of unknown typesMaria Christakis
2010-06-03Support -export_type() in dialyzer and erl_typesKostis Sagonas
2010-04-09Dialyzer docs: Fix minor typoKostis Sagonas
2010-03-03Fix small confusion/buglet in the handling of 'or'Kostis Sagonas
2010-02-19Update release notesBjörn-Egil Dahlberg
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-16dialyzer: Fix system_limit exception in race analysisKostis Sagonas
dialyzer_callgraph: Avoid creation of too many ets tables by the race analysis. dialyzer_dataflow: The digraph returned by the race analysis should not be the translated one.
2010-02-14dialyzer: New version for the R13B04 releaseKostis Sagonas
2009-11-20The R13B03 release.OTP_R13B03Erlang/OTP