aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dialyzer
AgeCommit message (Collapse)Author
2011-03-11Update copyright yearsBjörn-Egil Dahlberg
2011-03-11Merge branch 'sa/dialyzer-missing-spec' into devHenrik Nord
* sa/dialyzer-missing-spec: Add spec to dialyzer_cl_parse:get_lib_dir/1 OTP-9129
2011-03-11Release notes and new version for R14B02Kostis Sagonas
2011-03-11More descriptive warning when a tuple pattern matches a typed recordStavros Aronis
2011-03-11Better blame assignment when a spec is erroneousStavros Aronis
Applies to the specification of the return value of a function.
2011-03-11Generate better warnings for failing guardsStavros Aronis
2011-03-11Fix an erroneous warningKostis Sagonas
2011-03-11Refactoring so that a flat string() is returnedKostis Sagonas
2011-03-11Renamed error/1 function and added specsKostis Sagonas
2011-03-11Renamed error/1 function and added specsKostis Sagonas
2011-03-10Add spec to dialyzer_cl_parse:get_lib_dir/1Stavros Aronis
2011-03-09Merge branch 'aronisstav/dialyzer/dialyzer_tests/OTP-9116' into devLukas Larsson
* aronisstav/dialyzer/dialyzer_tests/OTP-9116: Increase timetrap of options1 suite Write output_plt even when plt_check is ok Create plt with erts, kernel and stdlib only Update test results as they currently appear in dev Major restructure of dialyzer's testsuite Add 'apps' option to the erlang interface Update spec file to work with new common test structure Test suites for Dialyzer
2011-03-04Merge branch 'sa/dialyzer-fix-guards' into devNiclas Axelsson
* sa/dialyzer-fix-guards: Fix warnings about guards containing not Fix errors in the handling of 'and'/'or' guards Cosmetic changes OTP-9099
2011-03-01Increase timetrap of options1 suiteStavros Aronis
2011-02-28Write output_plt even when plt_check is okStavros Aronis
2011-02-28Create plt with erts, kernel and stdlib onlyStavros Aronis
2011-02-28Update test results as they currently appear in devStavros Aronis
2011-02-28Major restructure of dialyzer's testsuiteStavros Aronis
Generation of the PLT is now performed without using OS commands. We still try to copy in the default plt to make small scale testing efficient. If generation/checking fails, suites are skipped except plt_tests_SUITE which contains a bare PLT check that fails normally.
2011-02-28Add 'apps' option to the erlang interfaceStavros Aronis
2011-02-18Update spec file to work with new common test structureLukas Larsson
2011-02-18Test suites for DialyzerStavros Aronis
This is a transcription of most of the cvs.srv.it.uu.se:/hipe repository dialyzer_tests into test suites that use the test server framework. See README for information on how to use the included scripts for modifications and updates. When testing Dialyzer it's important that several OTP modules are included in the plt. The suites takes care of that too.
2011-01-20Add a --fullpath option to DialyzerKostis Sagonas
This change adds a --fullpath option to Dialyzer, which makes the warning messages contain the full path of the corresponding file. Original patch submitted by Magnus Henoch (legoscia) on 15/9/2010 and cooked to death in the 'pu' branch all this time. The patch was essentially correct and most of it has been used as is, but there have been some changes to make the code slightly prettier, avoid some code duplication, and add documentation to dialyzer's doc files and to its help message.
2011-01-18Fix warnings about guards containing notStavros Aronis
The wording of warnings about unsatisfiable guards that used 'not' was incorrect (the 'not' was not mentioned and it appeared as "Guard test is_atom(atom()) can never succeed").
2011-01-18Fix errors in the handling of 'and'/'or' guardsStavros Aronis
Apart from the obvious bug in the negative evaluation of an 'and' guard, Dialyzer handled dont_know cases rather single-mindedly towards the positive branch. This patch allows for negative results as well and does some clever guesses to narrow them down. It was constructed similarly to the handling of the 'not' guard.
2011-01-14Cosmetic changesStavros Aronis
2010-12-20Fix bug in the handling of 'or' by DialyzerStavros Aronis
Dialyzer had a minor issue when the arguments of the built-in function 'or' had the fixed value 'false'. This testcase should return no warnings: -module(false_false). -export([false_or/0]). false_or() -> false or false.
2010-12-06Prepare releaseErlang/OTP
2010-12-06dialyzer: Update documentationMaria Christakis
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