diff options
author | Kostis Sagonas <[email protected]> | 2014-03-19 15:45:01 +0100 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2014-03-24 15:00:22 +0100 |
commit | 5dd69f0c646d83c98a70975431db209e53aa0817 (patch) | |
tree | 87e729763d92e21ecabe5b188e656c693ecf7662 | |
parent | 26eef1c3f3e3166b0e864475484e947c4ccc009d (diff) | |
download | otp-5dd69f0c646d83c98a70975431db209e53aa0817.tar.gz otp-5dd69f0c646d83c98a70975431db209e53aa0817.tar.bz2 otp-5dd69f0c646d83c98a70975431db209e53aa0817.zip |
Correct some type declarations
The types of some record fields were wrong. This file uses some module
local format of race warnings and when the analysis is done transforms
this format into the format of general dialyzer warnings. This change
fixes the type declaration of the race_warning field of the #races{}
record which was wrong. In addition, declared the type of the state
field in some other record that, long ago, could not be declared since
mutually recursive types were not supported by Dialyzer's analysis.
-rw-r--r-- | lib/dialyzer/src/dialyzer_races.erl | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/dialyzer/src/dialyzer_races.erl b/lib/dialyzer/src/dialyzer_races.erl index 48fcde8014..b1f849b16f 100644 --- a/lib/dialyzer/src/dialyzer_races.erl +++ b/lib/dialyzer/src/dialyzer_races.erl @@ -85,6 +85,12 @@ -type race_tag() :: 'whereis_register' | 'whereis_unregister' | 'ets_lookup_insert' | 'mnesia_dirty_read_write'. +%% The following type is similar to the dial_warning() type but has a +%% tag which is local to this module and is not propagated to outside +-type dial_race_warning() :: {race_warn_tag(), file_line(), {atom(), [term()]}}. +-type race_warn_tag() :: ?WARN_WHEREIS_REGISTER | ?WARN_WHEREIS_UNREGISTER + | ?WARN_ETS_LOOKUP_INSERT | ?WARN_MNESIA_DIRTY_READ_WRITE. + -record(beg_clause, {arg :: var_to_map1(), pats :: var_to_map1(), guard :: cerl:cerl()}). @@ -103,7 +109,7 @@ args :: args(), arg_types :: [erl_types:erl_type()], vars :: [core_vars()], - state :: _, %% XXX: recursive + state :: dialyzer_dataflow:state(), file_line :: file_line(), var_map :: dict:dict()}). -record(fun_call, {caller :: dialyzer_callgraph:mfa_or_funlbl(), @@ -141,7 +147,7 @@ race_tags = [] :: [#race_fun{}], %% true for fun types and warning mode race_analysis = false :: boolean(), - race_warnings = [] :: [dial_warning()]}). + race_warnings = [] :: [dial_race_warning()]}). %%% =========================================================================== %%% @@ -1763,7 +1769,7 @@ ets_list_args(MaybeList) -> catch _:_ -> [?no_label] end; false -> [ets_tuple_args(MaybeList)] - end. + end. ets_list_argtypes(ListStr) -> ListStr1 = string:strip(ListStr, left, $[), |