aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dialyzer
AgeCommit message (Collapse)Author
2012-05-21Generalize coordinator and workerStavros Aronis
2012-05-21Prepare for parallel dataflowStavros Aronis
2012-05-21Separate race related fields of callgraphStavros Aronis
2012-05-21Remove unused race detection related codeStavros Aronis
2012-05-21Simplification in dataflowStavros Aronis
2012-05-21Refactorings in succ_typingsStavros Aronis
2012-05-21Moving code between callgraph & dataflowStavros Aronis
2012-05-21Parallel typesig analysisStavros Aronis
2012-05-21Success typing analysis uses ETS tables for necessary plt infoStavros Aronis
Only the info and contracts dicts were neccessary for success typing inference and these have been converted to ETS tables.
2012-05-21Convert remaining codeserver fields to ETS tablesStavros Aronis
2012-05-21Replace Dialyzer's hand-made codeserver with an ets tableStavros Aronis
2012-05-21Simplify typesig postorder calculationStavros Aronis
As the storing in the codeserver is organized per function there is no need for fancy code to make use of the old caching capabilities.
2012-05-21Flatten order of dataflow analysesStavros Aronis
Dataflow analysis was structured to find SCCs of modules, without making any use of the information that these were indeed SCCs.
2012-05-21Refactoring in pltStavros Aronis
2012-05-08Merge branch 'sa/dialyzer-contract-variables' into maintHenrik Nord
* sa/dialyzer-contract-variables: Correct handling of type names in contracts Don't rewrite unchanged PLT Fix crash related to contract checking OTP-10083
2012-04-24Correct handling of type names in contractsStavros Aronis
Variables in contracts can either be true type variables or simply names for types thet are defined in the 'when' clauses. Consider the following example: -spec foo(X, Options) -> {ok, X} | error when Options :: [{atom(), boolean()}]. Here X is a true variable whereas Options is a name for a type that is defined in the when clause. 'when' clauses may further use names on the right side. These were not treated properly by Dialyzer and could be generalized to the term() type. This patch fixes this issue. A further issue is the treatment of true type variables, but this is left for another patch.
2012-04-24Don't rewrite unchanged PLTStavros Aronis
2012-04-24Fix crash related to contract checkingStavros Aronis
When "collapsing" heads of list elements from a list's tail into the list's head the new head can be different.
2012-04-17Correct documentation, erl_bif_types and dialyzer testsPatrik Nyblom
2012-04-17Extend erlang:port_info/1,2 to show the OS pid of a spawned processMatthias Lang
When spawning OS (unix) processes with erlang:open_port, store the resulting unix pid so that it can be queried later on using erlang:port_info/1,2.
2012-04-01Prepare releaseOTP_R15B01Erlang/OTP
2012-03-30Update copyright yearsBjörn-Egil Dahlberg
2012-03-26Fix bug related with infinitely looping functionsStavros Aronis
Depending of the ordering of the functions during dataflow, a function with an infinite loop might be identified as one that always crashes. This is fixed now, by allowing restoration of the infinitely-looping status.
2012-03-26Report only actual unknown types otherwise no message is sentStavros Aronis
2012-03-26Use wx:wx_object() type now that it is exportedKostis Sagonas
2012-03-26Up versionKostis Sagonas
2012-03-26Add warnings_as_errors optionKostis Sagonas
2012-03-14Ensure that -on_load functions are not reported as unusedStavros Aronis
2012-03-01Unknown types are being reported by dialyzer's GUIsStavros Aronis
2012-03-01Fix bug in remote type solvingStavros Aronis
2012-02-22Review by Kostis Sagonas and fixesStavros Aronis
2012-02-22Simplify external vs bad calls checkStavros Aronis
2012-02-22Remove callgraph from the state used during solvingStavros Aronis
2012-02-22Refactorings in dialyzer_typesigStavros Aronis
2012-02-22Avoid unnecessary passing of huge terms in some closuresStavros Aronis
The relevant terms were instances of Dialyzer's typesig analysis state that were stored together with some "dynamic" constraints in a dict. Due to sharing this was not apparent until we tried to copy the dictionary. Initial debugging was by Björn Gustavsson.
2012-02-22Further simplificationsStavros Aronis
2012-02-22Remove redundant codeStavros Aronis
2012-02-22Simplify dialyzer_succ_typings codeStavros Aronis
2012-02-22Cleanups in dialyzer_callgraph and dialyzer_dataflowStavros Aronis
Refactorings, code movements and reflection of mutable variables in the code.
2012-02-22Zero-arity unused functions Dialyzer patchStavros Aronis
Dialyzer was not reporting unused functions with 0 arity. This was not a real issue, until we found out that there could be cases where this could lead to false warnings. This was the case in "no_local_return.erl".
2012-02-22Cleanup debug messages in dialyzer_dataflowStavros Aronis
2012-02-22Refactorings in dialyzer_analysis_callgraphStavros Aronis
2012-02-22Allow t_opaque_structure to handle multiple opaque typesStavros Aronis
2012-02-22Support alternative spelling of behaviourStavros Aronis
2012-02-22Refactor function selection by Dialyzer's codeserverStavros Aronis
2012-02-22Prettify specStavros Aronis
2012-02-22Small fixes for Dialyzer's testsuites generationStavros Aronis
2012-02-08Suppress deprecated warnings in all modules that call 'gs'Björn Gustavsson
2011-12-22Handle nowarn_unused_function like the compiler doesHans Bolinder
2011-12-12Prepare releaseErlang/OTP